I am using Wix v3.0.4721.0 and tried the creating a patch with Pyro. I have found a problem where .Net assemblies put in the GAC do not get updated when only the file version changes. I know that only changing the file version is not preferred.
I also used the -fv option for each light.exe command to make it work in the first place.
I have made a v1.0 msi and a .v1.1 small update msi. When installing v1.1 with the command below it updates the assembly in the GAC just fine. I can see that by browsing to the GAC (C:\Windows\Assembly), looking for Package1 and then right click Properties - Version. The file version is 1.1.0.0.
msiexec /i product.msi REINSTALL=ALL REINSTALLMODE=vomus
When making a patch between v1.0 and v1.1 using Pyro (http://blogs.msdn.com/astebner/archive/2007/10/26/5700191.aspx) applying the patch does not update the assembly in the GAC.
When making the same patch with the old method using msimsp (http://www.tramontana.co.hu/wix/lesson4.php) applying the patch does update the assembly in the GAC.
I therefore conclude there must be a problem in Pyro which causes the .Net assembly in the GAC not to be updated when only the file version changes.
I have included the sample source. I did have to remove a project3.exe, but it is not needed to demonstrate this problem.
Sample
Can you provide the command lines you used to create both your transforms and your patches? I know this works for all the scenarios I've tried. My product always only updates the file version as well and we've been patching it using pyro. I'm guessing that when you create the patch, the 1.0 assembly and the 1.1 assembly dont both exist on disk in their original locations to be compared with eachother. I've seen people overwrite their 1.0 assemblies with 1.1 assemblies when building their upgrade and seeing this behavior.
The zip files contains .bat files with the commands I used, but I'll repeat them here:
candle.exe -dVersion=1.0 product.wxs
light.exe -fv product.wixobj -out 1.0\product.msi
candle.exe -dVersion=1.1 product.wxs
light.exe -fv product.wixobj -out 1.1\product.msi
torch.exe -p -xi 1.0\product.wixpdb 1.1\product.wixpdb -out patch\diff.wixmst
candle.exe patch.wxs
light.exe patch.wixobj -out patch\patch.wixmsp
pyro.exe patch\patch.wixmsp -out patch\patch.msp -t RTM patch\diff.wixmst
candle.exe OldPatch.wxs
light.exe -fv OldPatch.wixobj
Msimsp.exe -s OldPatch.pcp -p OldPatch.msp -l OldPatch.log
Here a post about the same problem: http://n2.nabble.com/Patch-build-with-GAC-update-td712589.html
To note, the wixmst contains the difference in the fileVersion assembly name attribute but is being dropped when the patch transform is reduced.
The problem is that the MsiAssemblyName row is in a diferrent section ("/") than the referenced Component row ("wix.section.3"). During binding, the MsiAssemblyName rows are not created in the appropriate section. Since this table is created entirely based on the <file> attributes, the same section as the related file should be used to create the row.</file>
This Tracker item was closed automatically by the system. It was
previously set to a Pending status, and the original submitter
did not respond within 21 days (the time period specified by
the administrator of this Tracker).