We've recently been seeing issue 1 where an upgrade doesn't work due to a missing registry entry. We're currently telling customers how to do a full repair on a case by case basis as this occurs. Did anyone ever find a fix for this?
Thanks, Rob On 29/11/2010 21:23, James Johnston wrote: > Hi, > > A couple questions, both regarding DIFxApp. (We use it to install three > drivers for three plug-and-play USB devices for a hardware product that we > ship.) > > 1. Some time ago Rob Mensching mentioned the following on this list: > > "Yeah, there are some design issues in the DIFxApp code around Upgrades I'm > still trying to figure out what to do with DIFx since we don't have the code > to fix it here. I'll try to find someone to forward this thread to see if we > can't get some movement (not that it has worked yet)." > http://www.mail-archive.com/wix-users@lists.sourceforge.net/msg35219.html > > I am very interested in knowing whether anybody here knows what some of > these design issues might be? Can DIFxApp be used when an application must > be serviced in the future? I looked through MSDN and did not find any > mention one way or the other regarding DIFxApp and upgrades. If upgrades > are not supported (which would seem like a serious deficiency!), what is the > recommended way of servicing an app that uses DIFxApp? Just what, exactly, > are the caveats involved with upgrades and DIFx? > > The reason I ask is that upgrades are not going as well as we would like. > Currently we service our application very simply. Every new version is a > major upgrade: new product code, new version number. We have always > scheduled RemoveExistingProducts immediately after InstallInitialize. We > have tested this in-house on just about every computer at our (small) > company without any issue: the upgrades generally go very smoothly. > Additionally, most of our customers have also done upgrades without issue. > > However, there have been a few customers (i.e. about 10: enough for us to > not consider it to be an isolated incident) where they were unable to > upgrade. The setup program will roll back and fail when upgrading. Also, > they are then unable to uninstall the software: again, the setup program > rolls back when attempting to remove the product. The MSI logs always point > to DIFx as the problem, with DIFx indicating that key DIFx information in > the registry is missing. Searching Google seems to indicate that we may not > be the only people experiencing this issue. The problem has been observed > on both Windows XP SP3 and Windows 7 (few customers use Vista). Every setup > package uses the version of DIFx included with WiX 3.0 (I believe it's > version 2.1.1). > > In order to get the customer working again, we have successfully used the > following workaround in every case: (1) delete the key file as specified by > the driver component, (2) do a repair of the existing product; the absence > of the key file triggers MSI/DIFx to successfully install the driver again, > (3) we can now uninstall the old product/MSI, (4) the new product/MSI can be > installed. Unfortunately, we have not been able to reproduce the problem > locally. That also means that we (obviously) haven't identified what it is > about the customer computer that causes problems. > > 2. The second question is also related to upgrades. This one is easily > reproducible. The problem is that the connected USB device is completely > removed from Device Manager after the upgrade, and does not reappear until > the "Scan for hardware changes" button in Device Manager is clicked. What > seems to happen is the following: > > a. As part of the major upgrade, the old driver is uninstalled. At this > time, the device is completely removed from Device Manager (like if I > right-clicked it and said to uninstall it). > b. The new driver is installed, but does not install/upgrade any driver for > the connected device because it is no longer enumerated in Device Manager. > (i.e. DIFx does not think any such device is connected & needs setup). > c. Of course, the user proceeds to use our application, and wonders why the > hardware device is no longer found. > d. Clicking the "Scan for hardware changes" button in Device Manager (or > rebooting) will enumerate the USB device and load the appropriate drivers > from DIFx. At this point, our application will work again. > > It seems like this must be an extremely common occurrence with other > plug-and-play widgets that use DIFxApp and need upgrading. I can easily > enough add a custom action at the end of setup that calls the > CM_Reenumerate_DevNode API (see http://support.microsoft.com/kb/259697). > But given the fact that this seems like it should be a common situation: is > this the recommended way to handle this? What is the best practice to use > in this scenario? Does a custom action already exist for this? Am I doing > something wrong with DIFx (i.e. do I need to change my usage of DIFx instead > of write a custom action)? > > If anyone has so much as even heard of either of the issues above, I would > be grateful for some advice or pointers in the right direction. > > Best regards, > > James Johnston > > > > ------------------------------------------------------------------------------ > Increase Visibility of Your 3D Game App & Earn a Chance To Win $500! > Tap into the largest installed PC base & get more eyes on your game by > optimizing for Intel(R) Graphics Technology. Get started today with the > Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs. > http://p.sf.net/sfu/intelisp-dev2dev > ------------------------------------------------------------------------------ Master Java SE, Java EE, Eclipse, Spring, Hibernate, JavaScript, jQuery and much more. Keep your Java skills current with LearnJavaNow - 200+ hours of step-by-step video tutorials by Java experts. SALE $49.99 this month only -- learn more at: http://p.sf.net/sfu/learnmore_122612 _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users