[WiX-users] New to wix 3.0 ( 3.0.2925.0)
Hello everyone, We are stating using WiX. I'm searching for some help about how to structure our wxs file. We have a lot (more than 60K) files. The format we use currently is one file per component and one feature containing all the components. I have to build patch between minor version that remove, update and add new files. Is there any best practices or suggestions? I did some tests. I correctly generated a setup. I tried the patching system with pyro. I based my Patch.wxs on the Peter Marcu's Blog sample. My sample did work but it's took long time to generate the patch for only one file modified. Pyro looks to do a binary compare on each file can we specify to check if the file date have changed if not skip to the next file? Now I'm trying with a smaller set of files to test removed files and added files into a patch but I get this error C:\delivery\Dev\wix\src\ext\uiextension\wixlib\Common.wxs(73) : error PYRO0103 : The system cannot find the file 'C:\delivery\Target\wix\x86\ship\lang-neutral\PrintEula.dll'. I'm currently updating my sdk to build wix. And get the dll Thanks you for yours advices. Best Regards, Patrice Lamarche There is a sample of my wxs Setup.wxs ?xml version=1.0 encoding=utf-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; Product Id={955BA1D1-594E-4678-AD9B-785038FEBC47} Language=1033 Manufacturer=Blabla Inc. Name=v1.00.00 UpgradeCode={DD431266-3725-4BBB-902A-936CDFD95CA5} Version=1.00.00 Package Compressed=yes InstallerVersion=300 / Upgrade Id={DD431266-3725-4BBB-902A-936CDFD95CA5} UpgradeVersion OnlyDetect='yes' Property='PATCHFOUND' Minimum='1.00.00' IncludeMinimum='yes' Maximum='1.00.00' IncludeMaximum='yes' / UpgradeVersion OnlyDetect='yes' Property='NEWERFOUND' Minimum='1.00.00' IncludeMinimum='no' / /Upgrade Directory Id='TARGETDIR' Name='SourceDir' Directory Id='ProgramFilesFolder' Name='PFiles' Directory Id='Blabla' Name='Blabla' Directory Id='INSTALLDIR' Name='Bla' Directory Id=data_1 Name=Data Component Id=bla.build_1 Guid={6CB5A96B-2470-4F61-A237-8B8FC9853BCC} File Id=bla.build_1 Name=bla.build KeyPath=yes Source=x:\Data\bla.build DiskId=1 / /Component Component Id=bladata.build_1 Guid={7743C10F-109D-4209-9B67-361D24AB3D21} File Id=bladata.build_1 Name=blaData.build KeyPath=yes Source=x:\blaData.build DiskId=1 / /Component Component Id=bladata.ss.build_1 Guid={FD92FBF9-BAF0-4730-A263-CC646B91914D} File Id=bladata.ss.build_1 Name=blaData.ss.build KeyPath=yes Source=x:\blaData.ss.build DiskId=1 / /Component .. Feature Id=bla Level=1 Title=Bla 1.00.00 ComponentRef Id=log4net.appender.appenderskeleton.activateoptions.html_1 / ComponentRef Id=banksinmultibootdlg.cpp_1 / ComponentRef Id=gxtevbias.html_1 / ComponentRef Id=log4net.core.logimpl.errorformat_overload_3.html_1 / ComponentRef Id=t_5_025.cpp_1 / ComponentRef Id=test_list.vcproj_1 / ComponentRef Id=doc2.htm_1 / . Patch.wxs ?xml version=1.0 encoding=UTF-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; Patch AllowRemoval=yes Manufacturer=Bla MoreInfoURL=http://www.bla.com/; DisplayName=Bla 1.00.00 to 1.00.01 Description=Patch Sample Classification=Update Media Id=5000 Cabinet=RTM.cab PatchBaseline Id=RTM/ /Media PatchFamilyRef Id=BlaPatch/ /Patch Fragment PatchFamily Id=BlaPatch Version='1.00.01' Supersede='yes' /PatchFamily /Fragment /Wix - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] New to wix 3.0 ( 3.0.2925.0)
Hey Patrice, Have you tried using heat.exe ?? Since you have so many files you might want to take a look at that. You point it to you folder and it writes out the wxs file for you including all the reg keys for DLL's etc. If order to build patch's and minor versions your going to need to reconcile your GUIDS and ID. The tool you need I believe this community calls it a component catalog, and as far as I'm aware it does not exist. Unfortunately when you use heat it will not generate GUIDS and you need to maintain them and the ID's yourself. Remember to not break any of the component rules (whatever they are). I have written what I think is a component catalog, however I don't have enough knowledge to ensure all component rules are not broken so it's just something I'm playing with at this point. Jimbo From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Patrice Lamarche Sent: Thursday, July 19, 2007 6:39 AM To: wix-users@lists.sourceforge.net Subject: [WiX-users] New to wix 3.0 ( 3.0.2925.0) Hello everyone, We are stating using WiX. I'm searching for some help about how to structure our wxs file. We have a lot (more than 60K) files. The format we use currently is one file per component and one feature containing all the components. I have to build patch between minor version that remove, update and add new files. Is there any best practices or suggestions? I did some tests. I correctly generated a setup. I tried the patching system with pyro. I based my Patch.wxs on the Peter Marcu's Blog sample. My sample did work but it's took long time to generate the patch for only one file modified. Pyro looks to do a binary compare on each file can we specify to check if the file date have changed if not skip to the next file? Now I'm trying with a smaller set of files to test removed files and added files into a patch but I get this error C:\delivery\Dev\wix\src\ext\uiextension\wixlib\Common.wxs(73) : error PYRO0103 : The system cannot find the file 'C:\delivery\Target\wix\x86\ship\lang-neutral\PrintEula.dll'. I'm currently updating my sdk to build wix. And get the dll Thanks you for yours advices. Best Regards, Patrice Lamarche There is a sample of my wxs Setup.wxs ?xml version=1.0 encoding=utf-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; Product Id={955BA1D1-594E-4678-AD9B-785038FEBC47} Language=1033 Manufacturer=Blabla Inc. Name=v1.00.00 UpgradeCode={DD431266-3725-4BBB-902A-936CDFD95CA5} Version=1.00.00 Package Compressed=yes InstallerVersion=300 / Upgrade Id={DD431266-3725-4BBB-902A-936CDFD95CA5} UpgradeVersion OnlyDetect='yes' Property='PATCHFOUND' Minimum='1.00.00' IncludeMinimum='yes' Maximum='1.00.00' IncludeMaximum='yes' / UpgradeVersion OnlyDetect='yes' Property='NEWERFOUND' Minimum='1.00.00' IncludeMinimum='no' / /Upgrade Directory Id='TARGETDIR' Name='SourceDir' Directory Id='ProgramFilesFolder' Name='PFiles' Directory Id='Blabla' Name='Blabla' Directory Id='INSTALLDIR' Name='Bla' Directory Id=data_1 Name=Data Component Id=bla.build_1 Guid={6CB5A96B-2470-4F61-A237-8B8FC9853BCC} File Id=bla.build_1 Name=bla.build KeyPath=yes Source=x:\Data\bla.build DiskId=1 / /Component Component Id=bladata.build_1 Guid={7743C10F-109D-4209-9B67-361D24AB3D21} File Id=bladata.build_1 Name=blaData.build KeyPath=yes Source=x:\blaData.build DiskId=1 / /Component Component Id=bladata.ss.build_1 Guid={FD92FBF9-BAF0-4730-A263-CC646B91914D} File Id=bladata.ss.build_1 Name=blaData.ss.build KeyPath=yes Source=x:\blaData.ss.build DiskId=1 / /Component .. Feature Id=bla Level=1 Title=Bla 1.00.00 ComponentRef Id=log4net.appender.appenderskeleton.activateoptions.html_1 / ComponentRef Id=banksinmultibootdlg.cpp_1 / ComponentRef Id=gxtevbias.html_1 / ComponentRef Id=log4net.core.logimpl.errorformat_overload_3.html_1 / ComponentRef Id=t_5_025.cpp_1 / ComponentRef Id=test_list.vcproj_1 / ComponentRef Id=doc2.htm_1 / . Patch.wxs ?xml version=1.0 encoding=UTF-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; Patch AllowRemoval=yes Manufacturer=Bla MoreInfoURL=http://www.bla.com/; DisplayName=Bla 1.00.00 to 1.00.01 Description=Patch Sample Classification=Update Media Id=5000 Cabinet=RTM.cab PatchBaseline Id=RTM/ /Media PatchFamilyRef Id=BlaPatch/ /Patch Fragment PatchFamily Id=BlaPatch Version='1.00.01' Supersede='yes' /PatchFamily /Fragment /Wix - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01
Re: [WiX-users] New to wix 3.0 ( 3.0.2925.0)
Hello, First, thanks for the reply. No I'm not using heat, I'll look. I'm currently generating my GUIDS with a perl script for the 1st install and we planned to create a program that will create the RemoveFile entry for deleted files, add the new files. I downloaded a weekly build from the website and it resolved my pyro problem. I can now generate patch with the files I manually edited. I'll search for more info about a component catalog. Just to be sure. If a file is deleted I need to change Component Id=bla.build_1 Guid={6CB5A96B-2470-4F61-A237-8B8FC9853BCC} File Id=bla.build_1 Name=bla.build KeyPath=yes Source=x:\Data\bla.build DiskId=1 / /Component For Component Id=bla.build_1 Guid={6CB5A96B-2470-4F61-A237-8B8FC9853BCC} RemoveFile Id=bla.build_1 Name=bla.build KeyPath=yes Source=x:\Data\bla.build DiskId=1 / /Component It's give me error about the keypath. I've read in the doc and I'm not sure about what the keypath attribute does. Thanks for your reactivity! Best regards, Patrice Lamarche De : Collins, James [mailto:[EMAIL PROTECTED] Envoyé : 19 juillet 2007 13:43 À : Patrice Lamarche; wix-users@lists.sourceforge.net Objet : RE: [WiX-users] New to wix 3.0 ( 3.0.2925.0) Hey Patrice, Have you tried using heat.exe ?? Since you have so many files you might want to take a look at that. You point it to you folder and it writes out the wxs file for you including all the reg keys for DLL's etc. If order to build patch's and minor versions your going to need to reconcile your GUIDS and ID. The tool you need I believe this community calls it a component catalog, and as far as I'm aware it does not exist. Unfortunately when you use heat it will not generate GUIDS and you need to maintain them and the ID's yourself. Remember to not break any of the component rules (whatever they are). I have written what I think is a component catalog, however I don't have enough knowledge to ensure all component rules are not broken so it's just something I'm playing with at this point. Jimbo From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Patrice Lamarche Sent: Thursday, July 19, 2007 6:39 AM To: wix-users@lists.sourceforge.net Subject: [WiX-users] New to wix 3.0 ( 3.0.2925.0) Hello everyone, We are stating using WiX. I'm searching for some help about how to structure our wxs file. We have a lot (more than 60K) files. The format we use currently is one file per component and one feature containing all the components. I have to build patch between minor version that remove, update and add new files. Is there any best practices or suggestions? I did some tests. I correctly generated a setup. I tried the patching system with pyro. I based my Patch.wxs on the Peter Marcu's Blog sample. My sample did work but it's took long time to generate the patch for only one file modified. Pyro looks to do a binary compare on each file can we specify to check if the file date have changed if not skip to the next file? Now I'm trying with a smaller set of files to test removed files and added files into a patch but I get this error C:\delivery\Dev\wix\src\ext\uiextension\wixlib\Common.wxs(73) : error PYRO0103 : The system cannot find the file 'C:\delivery\Target\wix\x86\ship\lang-neutral\PrintEula.dll'. I'm currently updating my sdk to build wix. And get the dll Thanks you for yours advices. Best Regards, Patrice Lamarche There is a sample of my wxs Setup.wxs ?xml version=1.0 encoding=utf-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; Product Id={955BA1D1-594E-4678-AD9B-785038FEBC47} Language=1033 Manufacturer=Blabla Inc. Name=v1.00.00 UpgradeCode={DD431266-3725-4BBB-902A-936CDFD95CA5} Version=1.00.00 Package Compressed=yes InstallerVersion=300 / Upgrade Id={DD431266-3725-4BBB-902A-936CDFD95CA5} UpgradeVersion OnlyDetect='yes' Property='PATCHFOUND' Minimum='1.00.00' IncludeMinimum='yes' Maximum='1.00.00' IncludeMaximum='yes' / UpgradeVersion OnlyDetect='yes' Property='NEWERFOUND' Minimum='1.00.00' IncludeMinimum='no' / /Upgrade Directory Id='TARGETDIR' Name='SourceDir' Directory Id='ProgramFilesFolder' Name='PFiles' Directory Id='Blabla' Name='Blabla' Directory Id='INSTALLDIR' Name='Bla' Directory Id=data_1 Name=Data Component Id=bla.build_1 Guid={6CB5A96B-2470-4F61-A237-8B8FC9853BCC} File Id=bla.build_1 Name=bla.build KeyPath=yes Source=x:\Data\bla.build DiskId=1 / /Component Component Id=bladata.build_1 Guid={7743C10F-109D-4209-9B67-361D24AB3D21} File Id=bladata.build_1 Name=blaData.build KeyPath=yes Source=x:\blaData.build DiskId=1 / /Component Component Id=bladata.ss.build_1 Guid={FD92FBF9-BAF0-4730-A263
Re: [WiX-users] New to wix 3.0 ( 3.0.2925.0)
My understanding is that if your removing a file then just remove the whole component all together and when you upgrade MSI will realize the component no longer exists and remove the file for you. So you would start with Component Id=bla.build_1 Guid={6CB5A96B-2470-4F61-A237-8B8FC9853BCC} File Id=bla.build_1 Name=bla.build KeyPath=yes Source=x:\Data\bla.build DiskId=1 / /Component And change it to... Empty string. But as I said I'm no expert on the component rules. :-) Jimbo From: Patrice Lamarche [mailto:[EMAIL PROTECTED] Sent: Thursday, July 19, 2007 10:57 AM To: Collins, James; wix-users@lists.sourceforge.net Subject: RE: [WiX-users] New to wix 3.0 ( 3.0.2925.0) Hello, First, thanks for the reply. No I'm not using heat, I'll look. I'm currently generating my GUIDS with a perl script for the 1st install and we planned to create a program that will create the RemoveFile entry for deleted files, add the new files. I downloaded a weekly build from the website and it resolved my pyro problem. I can now generate patch with the files I manually edited. I'll search for more info about a component catalog. Just to be sure. If a file is deleted I need to change Component Id=bla.build_1 Guid={6CB5A96B-2470-4F61-A237-8B8FC9853BCC} File Id=bla.build_1 Name=bla.build KeyPath=yes Source=x:\Data\bla.build DiskId=1 / /Component For Component Id=bla.build_1 Guid={6CB5A96B-2470-4F61-A237-8B8FC9853BCC} RemoveFile Id=bla.build_1 Name=bla.build KeyPath=yes Source=x:\Data\bla.build DiskId=1 / /Component It's give me error about the keypath. I've read in the doc and I'm not sure about what the keypath attribute does. Thanks for your reactivity! Best regards, Patrice Lamarche De : Collins, James [mailto:[EMAIL PROTECTED] Envoyé : 19 juillet 2007 13:43 À : Patrice Lamarche; wix-users@lists.sourceforge.net Objet : RE: [WiX-users] New to wix 3.0 ( 3.0.2925.0) Hey Patrice, Have you tried using heat.exe ?? Since you have so many files you might want to take a look at that. You point it to you folder and it writes out the wxs file for you including all the reg keys for DLL's etc. If order to build patch's and minor versions your going to need to reconcile your GUIDS and ID. The tool you need I believe this community calls it a component catalog, and as far as I'm aware it does not exist. Unfortunately when you use heat it will not generate GUIDS and you need to maintain them and the ID's yourself. Remember to not break any of the component rules (whatever they are). I have written what I think is a component catalog, however I don't have enough knowledge to ensure all component rules are not broken so it's just something I'm playing with at this point. Jimbo From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Patrice Lamarche Sent: Thursday, July 19, 2007 6:39 AM To: wix-users@lists.sourceforge.net Subject: [WiX-users] New to wix 3.0 ( 3.0.2925.0) Hello everyone, We are stating using WiX. I'm searching for some help about how to structure our wxs file. We have a lot (more than 60K) files. The format we use currently is one file per component and one feature containing all the components. I have to build patch between minor version that remove, update and add new files. Is there any best practices or suggestions? I did some tests. I correctly generated a setup. I tried the patching system with pyro. I based my Patch.wxs on the Peter Marcu's Blog sample. My sample did work but it's took long time to generate the patch for only one file modified. Pyro looks to do a binary compare on each file can we specify to check if the file date have changed if not skip to the next file? Now I'm trying with a smaller set of files to test removed files and added files into a patch but I get this error C:\delivery\Dev\wix\src\ext\uiextension\wixlib\Common.wxs(73) : error PYRO0103 : The system cannot find the file 'C:\delivery\Target\wix\x86\ship\lang-neutral\PrintEula.dll'. I'm currently updating my sdk to build wix. And get the dll Thanks you for yours advices. Best Regards, Patrice Lamarche There is a sample of my wxs Setup.wxs ?xml version=1.0 encoding=utf-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; Product Id={955BA1D1-594E-4678-AD9B-785038FEBC47} Language=1033 Manufacturer=Blabla Inc. Name=v1.00.00 UpgradeCode={DD431266-3725-4BBB-902A-936CDFD95CA5} Version=1.00.00 Package Compressed=yes InstallerVersion=300 / Upgrade Id={DD431266-3725-4BBB-902A-936CDFD95CA5} UpgradeVersion OnlyDetect='yes' Property='PATCHFOUND' Minimum='1.00.00' IncludeMinimum='yes' Maximum='1.00.00' IncludeMaximum='yes' / UpgradeVersion
Re: [WiX-users] New to wix 3.0 ( 3.0.2925.0)
Unfortunately, removing a file via a patch is not as easy as that. Windows Installer requires that if a component is removed, the feature containing it be removed so you probably don't want to do that. You need to author a RemoveFile element to remove the file in your component. This will remove the file for you but you should leave the component. As for your patch taking a long time. Try using PatchFamily elements to limit the number of components you want to consider in your patch. Also, if you want to get deeper into WiX, you can implement a Binder extension that will allow you to dictate how files are compared when deciding what files to include in your patch. Another side note: Windows Installer has a limit of 1600 components tied to any one feature. I don't know what the side effects are of this but if you have 16,000 files, each with their own component, and they are all tied to the same feature, you may run into some problems... From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Collins, James Sent: Thursday, July 19, 2007 11:03 AM To: Patrice Lamarche; wix-users@lists.sourceforge.net Subject: Re: [WiX-users] New to wix 3.0 ( 3.0.2925.0) My understanding is that if your removing a file then just remove the whole component all together and when you upgrade MSI will realize the component no longer exists and remove the file for you. So you would start with Component Id=bla.build_1 Guid={6CB5A96B-2470-4F61-A237-8B8FC9853BCC} File Id=bla.build_1 Name=bla.build KeyPath=yes Source=x:\Data\bla.build DiskId=1 / /Component And change it to... Empty string. But as I said I'm no expert on the component rules. J Jimbo From: Patrice Lamarche [mailto:[EMAIL PROTECTED] Sent: Thursday, July 19, 2007 10:57 AM To: Collins, James; wix-users@lists.sourceforge.net Subject: RE: [WiX-users] New to wix 3.0 ( 3.0.2925.0) Hello, First, thanks for the reply. No I'm not using heat, I'll look. I'm currently generating my GUIDS with a perl script for the 1st install and we planned to create a program that will create the RemoveFile entry for deleted files, add the new files. I downloaded a weekly build from the website and it resolved my pyro problem. I can now generate patch with the files I manually edited. I'll search for more info about a component catalog. Just to be sure. If a file is deleted I need to change Component Id=bla.build_1 Guid={6CB5A96B-2470-4F61-A237-8B8FC9853BCC} File Id=bla.build_1 Name=bla.build KeyPath=yes Source=x:\Data\bla.build DiskId=1 / /Component For Component Id=bla.build_1 Guid={6CB5A96B-2470-4F61-A237-8B8FC9853BCC} RemoveFile Id=bla.build_1 Name=bla.build KeyPath=yes Source=x:\Data\bla.build DiskId=1 / /Component It's give me error about the keypath. I've read in the doc and I'm not sure about what the keypath attribute does. Thanks for your reactivity! Best regards, Patrice Lamarche De : Collins, James [mailto:[EMAIL PROTECTED] Envoyé : 19 juillet 2007 13:43 À : Patrice Lamarche; wix-users@lists.sourceforge.net Objet : RE: [WiX-users] New to wix 3.0 ( 3.0.2925.0) Hey Patrice, Have you tried using heat.exe ?? Since you have so many files you might want to take a look at that. You point it to you folder and it writes out the wxs file for you including all the reg keys for DLL's etc. If order to build patch's and minor versions your going to need to reconcile your GUIDS and ID. The tool you need I believe this community calls it a component catalog, and as far as I'm aware it does not exist. Unfortunately when you use heat it will not generate GUIDS and you need to maintain them and the ID's yourself. Remember to not break any of the component rules (whatever they are). I have written what I think is a component catalog, however I don't have enough knowledge to ensure all component rules are not broken so it's just something I'm playing with at this point. Jimbo From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Patrice Lamarche Sent: Thursday, July 19, 2007 6:39 AM To: wix-users@lists.sourceforge.net Subject: [WiX-users] New to wix 3.0 ( 3.0.2925.0) Hello everyone, We are stating using WiX. I'm searching for some help about how to structure our wxs file. We have a lot (more than 60K) files. The format we use currently is one file per component and one feature containing all the components. I have to build patch between minor version that remove, update and add new files. Is there any best practices or suggestions? I did some tests. I correctly generated a setup. I tried the patching system with pyro. I based my Patch.wxs on the Peter Marcu's Blog sample. My sample did work but it's took long time to generate the patch for only one file modified. Pyro looks to do a binary compare on each file can we specify to check if the file date