Hi All.

I'm using DIFxApp.MSM to install network device driver as part of a Visual Studio 2008 generated MSI file. Everything seems to be working for installation and uninstallation. That is, after I run the .MSI the driver is installed properly and after I choose Remove from the Add / Remove control panel the driver is uninstalled properly. So far so good.

The problem I am having is when I try to do an upgrade of my driver. To test, I make the following changes:
* Update the FILEVERSION, PRODUCTVERSION, FileVersion and ProductVersion strings in the version info of the driver's resources.
* Update the DriverVer string in the driver's .INF file to match the FileVersion in the resources.
* Change the version number of the MSI (when prompted by Visual Studio, I choose to NOT change the product code as my understanding is that the product code stays the same for minor updates).
* Launch the MSI with the following command line:
msiexec /l*v setup.log /i filename.msi REINSTALL=ALL REINSTALLMODE=vomus

What happens is that my driver files are updated correctly in the target directory, but my driver itself is uninstalled and not reinstalled. If I go to the Add / Remove control panel and do a repair, the new driver is installed just fine.

A couple of points of note (I don't know if these things are actually relevant, but it seems to me they could be):
My driver is not signed, but I am setting the legacy install flag MsiDriverPackages Flags field (I see the warnings during install).
My MSI has RemovePreviousVersions set to False (though I tried True and it didn't seem to make a difference).
My development / test machine is XP with SP3.
I'm using version 6001.18001 of the WDK (DDK).

I know the logs will be useful, but I don't see any way to attach them to this post. Is there something specific I should be looking for in the log files? If so I can post it in a followup message.

So that's my problem. Any help in figuring out how to get my driver properly updated would be much appreciated.

Thanks,
Kevin
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

0
You don't mention anything about the Upgrade table which you'll need to alter to properly perform an upgrade. I don't know for sure (since I would never use it for the packaging process, preferring to use proper tools for the job - no offence!) but I doubt VS gives you GUI access to that table. If that's the case, check out MSDN for details on the Upgrade table. Lastly, you need a tool for editing the MSI: since it seems you're a developer, you almost certainly have the Platform SDK which includes Orca. Remember that Orca allows direct editing of an MSI's tables and, if you don't know what you're doing, you can break it irretrievably so make copies. There's a somewhat more friendly (and free!) tool available which some of us are using for this task, called InstEd, available at http://www.instedit.com/
Answered 12/19/2008 by: VBScab
Red Belt

Please log in to comment
0
If you are going to perform a reinstall then try adding "a" to the REINSTALLMODE property, ex. REINSTALLMODE=vomusa
Answered 12/19/2008 by: AngelD
Red Belt

Please log in to comment
0
VBScab,

According to the MSDN Uprage Table page (http://msdn.microsoft.com/en-us/library/aa372379(VS.85).aspx), "The Upgrade table contains information required during major upgrades." I am only tying to do a minor upgrade (I changed the version but not the ProductCode), but I believe what I want to do could even be accomplished with a small update. Is this perhaps a restriction of DIFxApp, that it can only be used when you do major upgrades?
Answered 12/19/2008 by: KevinLussier
Yellow Belt

Please log in to comment
0
AngelD,

Thanks for the suggestion. I tried using vomusa, but the result was the same. Are you implying that there is another way to do an upgrade without performing a reinstall?
Answered 12/19/2008 by: KevinLussier
Yellow Belt

Please log in to comment
0
what does your InstallExecute sequence look like? Where in it is the RemoveExistingProducts? And really, how is it a minor update if you are completely uninstalling & laying down new drivers? I would never classify system level changes as minor...
Answered 12/19/2008 by: kiptek
Second Degree Green Belt

Please log in to comment
0
I don't see any way to attach them to this post. Either use something like Senduit.com and post a link or use the 'code' tag, accessible by clicking the button marked '<%' in the 'Reply to Message' window. Use this tag for any lengthy text you want to post.
Answered 12/22/2008 by: VBScab
Red Belt

Please log in to comment
Answer this question or Comment on this question for clarity