Re: [WiX-users] How to integarte an .cat file
Geoff Finger schrieb: For me the assemblies are automatically removed on uninstall. I have found however that during the testing process when i'm doing a lot of installs and uninstalls in thre process of debuging my Wix code that the state of things sometimes gets screwed up and files end up getting left behind. Try running the installer on a fresh machine and see if it uninstalls correctly there. If you don't have a spare machine you can use you could try removing the assemblies yourself and then do an install/uninstall cycle. Unfortunately I'm not sure what the safe way of removing assemblies yourself is if Windows doesn't handle it for you. Yes, after remove it via hand from the VM it will be working again.) smime.p7s Description: S/MIME Cryptographic Signature - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] How to integarte an .cat file
Geoff Finger schrieb: That looks correct for the final manifest file. Offhand the only possible problem I can is that manifest files may not be equiped to handle umlauts. Try using a different file name? Yes, but the same result. Any other idea's? Frank smime.p7s Description: S/MIME Cryptographic Signature - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] How to integarte an .cat file
Frank Büttner schrieb: Geoff Finger schrieb: That looks correct for the final manifest file. Offhand the only possible problem I can is that manifest files may not be equiped to handle umlauts. Try using a different file name? Yes, but the same result. Any other idea's? Frank Now it works:) There was an little spell error in the manifest file. But when I uninstall my application that the merge module use, the files installed as side-by-side assembly will not removed. What must I add to the wix files of the merge module, to get is uninstalled, when the main application will be removed. smime.p7s Description: S/MIME Cryptographic Signature - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] How to integarte an .cat file
Geoff Finger schrieb: I'm not sure what steps you've already completed so here's the entire process I followed. In my case I was using MS VS 2005, obviously some steps my have to be addapted depending on the enviroment you're working under. First you have to create a key if you don't have one already: makecert -n CN=CompanyName -sv PVKFile.pvk CertificateFile.cer -len 2048 -r pvk2pfx.exe -pvk PVKFile.pvk -spc CertificateFile.cer -pfx PFXFile.pfx [-po Password] pktextract CertificateFile.cer The password, if any, will be the one you enter for the first step. The last step generates the public key token you'll be needing later. You'll need a manifest file, you can write it yourself or take the easy way out by compiling the project once after going to project properties and selecting General-Manifest. Set the Assembly Identity to: DllName, type=win32, version=VersionNumber, processorArchitecture=X86, publicKeyToken=PublicKeyToken DllName is the name without the extension, VersionNumber is of the form 1.2.3.4, and the PublicKeyToken is the one you got from pktextract. Make sure you have Embed Manidest under Input and Output set to no for this first time. Depending on the compiler you're using you may need to edit the resulting manifest file and add the line file name=dllFile.dll hash= hashalg=SHA1/ before any dependency elements. the file name is the final name of the file, with the extension. The value of the hash bit is unimportant because it will be overwritten later. You can save the resulting manifest file and reuse it for the following steps multiple times as long as none of the fundamental values change (file name, version number, encryption key, etc) You then run mt.exe -manifest dllFile.dll.manifest -hashupdate -makecdfs which updates the hash value and creates a cdf ffile. Next you run: makecat -v dllFile.dll.manifest.cdf to create the cat file. FInally you run signtool sign /f PFXFile.pfx [/p password] /t http://timestamp.verisign.com/scripts/timestamp.dll dllFile.dll.cat to sign the catalog file using the key. Now the wix bit, which I had a lot of trouble with and sent a couple messages to the list about without resulting in much progress. Once I figured out what the missiing bits were however it turned out to be pretty simple: Component Id=DllComponent Guid=MYGUID-# File Id=ManFile Name=dllFile.man LongName=dllFile.dll.manifest src=Path\dllFile.dll.manifest Vital=yes DiskId=1 /File File Id=CatFile Name=dllFile.cat LongName=dllFile.dll.cat src=Path\dllFile.dll.cat Vital=yes DiskId=1 /File File Id=DllFile Name=dllFile.dll LongName=dllFile.dll KeyPath=yes src=Path\dllFile.dll Vital=yes DiskId=1 Assembly=win32 AssemblyManifest=ManFile /File /Component And of course finally once you've installed your new assembly you need to reference it in any other projects that will be using it by going to Project Options-Linker-Manifest File-Additional Manifest Dependencies and adding type='win32' name='DllName' version='VersionNumber' processorArchitecture='X86' publicKeyToken='PublicKeyToken' language='*' There are a couple pages that halped me figure this stuff out if you want to take a look at them: http://msdn2.microsoft.com/en-us/library/aa376307.aspx http://msdn2.microsoft.com/en-us/library/ms235512.aspx and especially: http://msdn2.microsoft.com/en-gb/library/aa374228.aspx These steps has I all do. But the build fails with the error above. Here is my file that I have tried: ?xml version=1.0 encoding=utf-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; Module Id=QtCoreModul Language=0 Version=4.2.2.0 Package Id= Manufacturer=Frank Büttner InstallerVersion=300/ Directory Id=TARGETDIR Name=SourceDir Directory Id=QtDir Name=. Component Id=QtCore Guid=X File Id=qtcoredll Vital=yes Name=QtCore4.dll Assembly=win32 KeyPath=yes Source=F:\Temp\Qt4\Mergemodule\QtCore4.dll AssemblyManifest=qtcoredllmanifest / File Id=qtcoredllmanifest Vital=yes Name=QtCore4.dll.manifest Source=F:\Temp\Qt4\Mergemodule\QtCore4.dll.manifest / File Id=qtcoredllcat Vital=yes Name=QtCore4.dll.cat Source=F:\Temp\Qt4\Mergemodule\QtCore4.dll.cat/ /Component /Directory /Directory /Module /Wix smime.p7s Description: S/MIME Cryptographic Signature - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys - and earn cash
Re: [WiX-users] How to integarte an .cat file
Frank Büttner schrieb: These steps has I all do. But the build fails with the error above. Here is my file that I have tried: ?xml version=1.0 encoding=utf-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; Module Id=QtCoreModul Language=0 Version=4.2.2.0 Package Id= Manufacturer=Frank Büttner InstallerVersion=300/ Directory Id=TARGETDIR Name=SourceDir Directory Id=QtDir Name=. Component Id=QtCore Guid=X File Id=qtcoredll Vital=yes Name=QtCore4.dll Assembly=win32 KeyPath=yes Source=F:\Temp\Qt4\Mergemodule\QtCore4.dll AssemblyManifest=qtcoredllmanifest / File Id=qtcoredllmanifest Vital=yes Name=QtCore4.dll.manifest Source=F:\Temp\Qt4\Mergemodule\QtCore4.dll.manifest / File Id=qtcoredllcat Vital=yes Name=QtCore4.dll.cat Source=F:\Temp\Qt4\Mergemodule\QtCore4.dll.cat/ /Component /Directory /Directory /Module /Wix So after some trys I found out, that the sort of the files are important. When the file is the catalog file, that Wix will compile it.(Is this normal or an Bug)?? But when I will install it, then I get an error, that the public key token for catalog file not match the manifest one. But I have used the same certificate. The public key token are the last 8 bytes of the SHA1 Hash of the certificate or not? smime.p7s Description: S/MIME Cryptographic Signature - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] How to integarte an .cat file
Geoff Finger schrieb: Wix doesn't check the validity of the keys, that happens when the file is actually installed into WinSxS. As far as I know it's not a bug although that would be some great added functionality for Wix. The public key is what you get by running pktextract on the certificate file. The hash file is generated using the private key but does not actually contain either part of the key. After running pktextract you take the results and put them in the manifest file, either by directly editing the file yourself, or putting it in the Assembly Identity section of the project properties as detailed above. When you're got your manifest, either by editing it directly or compiling the project, but before you've created the cdf or cat file it should have something resembling the following two lines in it: assemblyIdentity name=filename processorArchitecture=x86 publicKeyToken= type=win32 version=a.b.c.d/assemblyIdentity file name=filename.dll hash= hashalg=SHA1/ If the file name element is missing you can just add it by hand. If you then follow the rest of the steps, using the same key files you got the public key from, by the end the publicKeyToken, the hash value, and the encryption for the cat file should all match, in that the public key you've provided in the manifest will decrypt the encryption used on the cat file. Who can I fount pktextract? The windows SDK don't contain it:( smime.p7s Description: S/MIME Cryptographic Signature - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] How to integarte an .cat file
Frank Büttner schrieb: Geoff Finger schrieb: Wix doesn't check the validity of the keys, that happens when the file is actually installed into WinSxS. As far as I know it's not a bug although that would be some great added functionality for Wix. The public key is what you get by running pktextract on the certificate file. The hash file is generated using the private key but does not actually contain either part of the key. After running pktextract you take the results and put them in the manifest file, either by directly editing the file yourself, or putting it in the Assembly Identity section of the project properties as detailed above. When you're got your manifest, either by editing it directly or compiling the project, but before you've created the cdf or cat file it should have something resembling the following two lines in it: assemblyIdentity name=filename processorArchitecture=x86 publicKeyToken= type=win32 version=a.b.c.d/assemblyIdentity file name=filename.dll hash= hashalg=SHA1/ If the file name element is missing you can just add it by hand. If you then follow the rest of the steps, using the same key files you got the public key from, by the end the publicKeyToken, the hash value, and the encryption for the cat file should all match, in that the public key you've provided in the manifest will decrypt the encryption used on the cat file. Who can I fount pktextract? The windows SDK don't contain it:( So I have found an old platform SDK which contains it. So now it give me other error, when I try to install it. Windows say that line 11 of my manifest is invalid. Here the manifest file of the problem: ?xml version=1.0 encoding=UTF-8 standalone=yes? assembly xmlns=urn:schemas-microsoft-com:asm.v1 manifestVersion=1.0 assemblyIdentity version=4.2.2.0 processorArchitecture=x86 type=win32 publicKeyToken=X name=FrankBüttner.Qt.QtGui/assemblyIdentity file name=QtGui4.dll hashalg=SHA1 hash=XXXasmv2:hash xmlns:asmv2=urn:schemas-microsoft-com:asm.v2 xmlns:dsig=http://www.w3.org/2000/09/xmldsig#;dsig:Transformsdsig:Transform Algorithm=urn:schemas-microsoft-com:HashTransforms.Identity/dsig:Transform/dsig:Transformsdsig:DigestMethod Algorithm=http://www.w3.org/2000/09/xmldsig#sha1;/dsig:DigestMethoddsig:DigestValue7kkGn2QBTAJxo8cfOLWV8HR0POM=/dsig:DigestValue/asmv2:hash/file dependency dependentAssembly assemblyIdentity version=8.0.50608.0 processorArchitecture=x86 type=win32 publicKeyToken=1fc8b3b9a1e18e3b name=Microsoft.VC80.CRT/assemblyIdentity /dependentAssembly /dependency dependency depentAssembly assemblyIdentity version=4.2.2.0 processorArchitecture=x86 type=win32 publicKeyToken=XX name=FrankBüttner.Qt.QtCore/assemblyIdentity /depentAssembly /dependency /assembly Line 11 is the begin of the second dependency. smime.p7s Description: S/MIME Cryptographic Signature - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
[WiX-users] How to integarte an .cat file
How can I integrate an .cat file in my merge module. This file is needed for my side-by-side assembly. Simple use the File Tag will get the error: error LGHT0104 : Not a valid manifest file; How can I do this?? smime.p7s Description: S/MIME Cryptographic Signature - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] How to integarte an .cat file
I'm not sure what steps you've already completed so here's the entire process I followed. In my case I was using MS VS 2005, obviously some steps my have to be addapted depending on the enviroment you're working under. First you have to create a key if you don't have one already: makecert -n CN=CompanyName -sv PVKFile.pvk CertificateFile.cer -len 2048 -r pvk2pfx.exe -pvk PVKFile.pvk -spc CertificateFile.cer -pfx PFXFile.pfx [-po Password] pktextract CertificateFile.cer The password, if any, will be the one you enter for the first step. The last step generates the public key token you'll be needing later. You'll need a manifest file, you can write it yourself or take the easy way out by compiling the project once after going to project properties and selecting General-Manifest. Set the Assembly Identity to: DllName, type=win32, version=VersionNumber, processorArchitecture=X86, publicKeyToken=PublicKeyToken DllName is the name without the extension, VersionNumber is of the form 1.2.3.4, and the PublicKeyToken is the one you got from pktextract. Make sure you have Embed Manidest under Input and Output set to no for this first time. Depending on the compiler you're using you may need to edit the resulting manifest file and add the line file name=dllFile.dll hash= hashalg=SHA1/ before any dependency elements. the file name is the final name of the file, with the extension. The value of the hash bit is unimportant because it will be overwritten later. You can save the resulting manifest file and reuse it for the following steps multiple times as long as none of the fundamental values change (file name, version number, encryption key, etc) You then run mt.exe -manifest dllFile.dll.manifest -hashupdate -makecdfs which updates the hash value and creates a cdf ffile. Next you run: makecat -v dllFile.dll.manifest.cdf to create the cat file. FInally you run signtool sign /f PFXFile.pfx [/p password] /t http://timestamp.verisign.com/scripts/timestamp.dll dllFile.dll.cat to sign the catalog file using the key. Now the wix bit, which I had a lot of trouble with and sent a couple messages to the list about without resulting in much progress. Once I figured out what the missiing bits were however it turned out to be pretty simple: Component Id=DllComponent Guid=MYGUID-# File Id=ManFile Name=dllFile.man LongName=dllFile.dll.manifest src=Path\dllFile.dll.manifest Vital=yes DiskId=1 /File File Id=CatFile Name=dllFile.cat LongName=dllFile.dll.cat src=Path\dllFile.dll.cat Vital=yes DiskId=1 /File File Id=DllFile Name=dllFile.dll LongName=dllFile.dll KeyPath=yes src=Path\dllFile.dll Vital=yes DiskId=1 Assembly=win32 AssemblyManifest=ManFile /File /Component And of course finally once you've installed your new assembly you need to reference it in any other projects that will be using it by going to Project Options-Linker-Manifest File-Additional Manifest Dependencies and adding type='win32' name='DllName' version='VersionNumber' processorArchitecture='X86' publicKeyToken='PublicKeyToken' language='*' There are a couple pages that halped me figure this stuff out if you want to take a look at them: http://msdn2.microsoft.com/en-us/library/aa376307.aspx http://msdn2.microsoft.com/en-us/library/ms235512.aspx and especially: http://msdn2.microsoft.com/en-gb/library/aa374228.aspx On 1/25/07, Frank Büttner [EMAIL PROTECTED] wrote: How can I integrate an .cat file in my merge module. This file is needed for my side-by-side assembly. Simple use the File Tag will get the error: error LGHT0104 : Not a valid manifest file; How can I do this?? - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users