Until now I have always used the MediaTemplate EmbedCab='yes". My projects in general are posted to a web site and I use a mba to update the bundle and download the packages. This has been working for many projects using wix 3.8.1128. However I have recently experimented with creating these same projects using external cabinets. (I am using wix 3.9.702, but I think my question is unrelated to the version of the toolset).
First I assume it is best-practice to sign the external cab files. Since there is a wix 3.9 change to suppress authenticode signature checking by default, is itl recommended that external cab files be signed? In my project file the target SignMsi has dependent targets which, for each locale: 1) Calls torch to create a language specific mst file named ':LangId.mst'. 2) Calls the EmbedTransfrom.exe tool to embed the ':LangId.mst' file into the en-US msi (which is the only msi which is added to the bundle and deployed). 3) Calls signtool.exe to timestamp and sign the MSI All of the above has been working in multiple projects for sometime now. However when I add the SignCabs target to my project file the external cabinet is signed successfully, but torch generates the following error if the cabinet file is signed. "C:\Program Files (x86)\WiX Toolset v3.9\bin\torch.exe" -nologo -v -t language "--path-to-project--\bin\Release\x64\en-US\project_x64.msi" "--path-to-project--\bin\Release\x64\de-DE\project_x64.msi" -out "--path-to-project--\bin\Release\x64\de-DE\1031.mst" torch.exe(0,0): error TRCH0001: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. Exception Type: System.AccessViolationException Stack Trace: at Microsoft.Tools.WindowsInstallerXml.Msi.Interop.MsiInterop.MsiDatabaseGenerateTransform(UInt32 database, UInt32 databaseReference, String transformFile, Int32 reserved1, Int32 reserved2) at Microsoft.Tools.WindowsInstallerXml.Msi.Database.GenerateTransform(Database referenceDatabase, String transformFile) at Microsoft.Tools.WindowsInstallerXml.Binder.BindTransform(Output transform, String transformFile) at Microsoft.Tools.WindowsInstallerXml.Binder.Bind(Output output, String file) at Microsoft.Tools.WindowsInstallerXml.Tools.Torch.Run(String[] args) It does however generate an mst file which is 16kb. A successful build (without SignCabs) generats a mst file that is 20kb, so the 16kb file is probably not useful. Any general advice on Cabinet signing, or specific advice on how to sign a cabinet and still use torch and EmbedTransforms would be appreciated. Do I need to sign the cabinet at a different stage in the MSBuild without using SignCabs? -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/wix39-signing-external-cabs-tp7595976.html Sent from the wix-users mailing list archive at Nabble.com. ------------------------------------------------------------------------------ Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users