Re: [WiX-users] When is Wix 3.10 publicly available ?
See these blog posts. Both of these have a note about progress on 3.10 https://www.firegiant.com/blog/2015/6/2/wix-online-meeting-68-highlights/ https://www.firegiant.com/blog/2015/6/16/wix-online-meeting-70-highlights/ On 22 June 2015 at 17:55, Rob Mensching r...@firegiant.com wrote: PS: WiX v3.10 is available now: http://wixtoolset.org/releases/ ___ FireGiant | Dedicated support for the WiX toolset | http://www.firegiant.com/ -Original Message- From: Phill Hogland [mailto:phogl...@rimage.com] Sent: Monday, June 22, 2015 5:07 AM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] When is Wix 3.10 publicly available ? Those issues are discussed in the weekly on-line meeting, Tuesday evening, and summarized in this blog https://www.firegiant.com/blog/2015/6/16/wix-online-meeting-70-highlights/ . If I recall from the comments in the last meeting, the 'RC' will be announced soon. The stable release is expected to wait until after the Microsoft release of VS2015 is completed. Subsequently it is likely that there will be 'service releases' of 3.10.n rather than a focus on a 3.11 (or 3.1x) and a focus on the 4.x efforts. But those are issues which are discussed in the weekly meeting on, Tuesday evening, and I think all are welcome to participate. -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] using a custom action to read properties from a XML file
And a slightly more recent one: http://www.wrightfully.com/part-1-of-writing-your-own-net-based-installer-with-wix-overview/ On 28 February 2015 at 12:09, John Ludlow john.ludlow...@gmail.com wrote: Here's some links to articles about managed BAs: http://blogs.msdn.com/b/heaths/archive/2011/10/28/introducing-managed-bootstrapper-applications.aspx http://bryanpjohnston.com/2012/09/28/custom-wix-managed-bootstrapper-application/ Personally, I think that might be overcomplicating it slightly. On 28 February 2015 at 00:22, Davis, Jeff jda...@nanometrics.com wrote: What does use Burn and a managed BA mean? What would that look like? Jeff -Original Message- From: Hoover, Jacob [mailto:jacob.hoo...@greenheck.com] Sent: Friday, February 27, 2015 9:30 AM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] using a custom action to read properties from a XML file Or use Burn and a managed BA, where you can do it without a CA and pass it as a property to the MSI. -Original Message- From: Davis, Jeff [mailto:jda...@nanometrics.com] Sent: Friday, February 27, 2015 11:07 AM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] using a custom action to read properties from a XML file Jeremiahf, I like your approach. I'll write the C# code to do what I want it to do and then figure out how to make it a CA. Instead of trying to write a CA to do what I want. Jeff -Original Message- From: Jeremiahf [mailto:jeremi...@gmail.com] Sent: Thursday, February 26, 2015 6:49 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] using a custom action to read properties from a XML file I've had to do this before. My method was to create an application to read/modify an XML file. Then took my code and turned it into a CA. Saved a lot of headache trying to debug what was going on. Also as John stated, scheduled the CA to execute first. J On Thu, Feb 26, 2015 at 5:37 PM, John Cooper jocoo...@jackhenry.com wrote: Ok, so, you'll need to run in the UI Sequence pretty early. Question, how does Va'lue set MAC_ID? Normally, I would expect Value to be replaced by MAC_ID. You'll need to add an InstallUISequence Element with a Custom Action=your XML setter entry point here Before=LaunchConditions / What does your entry point look like? -- John Merryweather Cooper Senior Software Engineer | Integration Development Group | Continuing Development Jack Henry Associates, Inc.® | Lenexa, KS 66214 | Ext: 431050 | jocoo...@jackhenry.com -Original Message- From: Davis, Jeff [mailto:jda...@nanometrics.com] Sent: Thursday, February 26, 2015 5:27 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] using a custom action to read properties from a XML file I have custom UI dialog that has a Text control that has the variable. When the MSI runs it should populate that field with the data read from the XML. Control Type=MaskedEdit Id=MacID Width=270 Height=15 X=52 Y=184 Property=MAC_ID Text=[MACIDTemplate] / Control Type=Text Id=MacIDLabel Width=36 Height=10 X=11 Y=188 Text=MAC ID / -Original Message- From: John Cooper [mailto:jocoo...@jackhenry.com] Sent: Thursday, February 26, 2015 3:08 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] using a custom action to read properties from a XML file Well, which sequence is the custom action running? UI or Execute? If in the execute sequence, only public secure properties (properties in all upper case with a Secure=yes attribute) will be visible in the UI sequence. If in the UI sequence, are you firing this from a button, or is it just scheduled? If from a button, you're not going to get any logging. Try scheduling in directly in UI so you can get some logging. -- John Merryweather Cooper Senior Software Engineer | Integration Development Group | Continuing Development Jack Henry Associates, Inc.® | Lenexa, KS 66214 | Ext: 431050 |jocoo...@jackhenry.com -Original Message- From: Davis, Jeff [mailto:jda...@nanometrics.com] Sent: Thursday, February 26, 2015 4:54 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] using a custom action to read properties from a XML file Nothing happens. The value does not get populated in the UI. It still shows the default value of 0. But I am really just coding in the dark on this. I'm not sure what I am doing and not even sure I have everything correct. I just don't get the whole custom action concept and how properties get read and set? This was just a stab at what I thought would work. Jeff -Original Message- From: John Ludlow [mailto:john.ludlow...@gmail.com] Sent: Thursday, February 26, 2015 2:33 PM To: General discussion about the WiX toolset
Re: [WiX-users] using a custom action to read properties from a XML file
Here's some links to articles about managed BAs: http://blogs.msdn.com/b/heaths/archive/2011/10/28/introducing-managed-bootstrapper-applications.aspx http://bryanpjohnston.com/2012/09/28/custom-wix-managed-bootstrapper-application/ Personally, I think that might be overcomplicating it slightly. On 28 February 2015 at 00:22, Davis, Jeff jda...@nanometrics.com wrote: What does use Burn and a managed BA mean? What would that look like? Jeff -Original Message- From: Hoover, Jacob [mailto:jacob.hoo...@greenheck.com] Sent: Friday, February 27, 2015 9:30 AM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] using a custom action to read properties from a XML file Or use Burn and a managed BA, where you can do it without a CA and pass it as a property to the MSI. -Original Message- From: Davis, Jeff [mailto:jda...@nanometrics.com] Sent: Friday, February 27, 2015 11:07 AM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] using a custom action to read properties from a XML file Jeremiahf, I like your approach. I'll write the C# code to do what I want it to do and then figure out how to make it a CA. Instead of trying to write a CA to do what I want. Jeff -Original Message- From: Jeremiahf [mailto:jeremi...@gmail.com] Sent: Thursday, February 26, 2015 6:49 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] using a custom action to read properties from a XML file I've had to do this before. My method was to create an application to read/modify an XML file. Then took my code and turned it into a CA. Saved a lot of headache trying to debug what was going on. Also as John stated, scheduled the CA to execute first. J On Thu, Feb 26, 2015 at 5:37 PM, John Cooper jocoo...@jackhenry.com wrote: Ok, so, you'll need to run in the UI Sequence pretty early. Question, how does Va'lue set MAC_ID? Normally, I would expect Value to be replaced by MAC_ID. You'll need to add an InstallUISequence Element with a Custom Action=your XML setter entry point here Before=LaunchConditions / What does your entry point look like? -- John Merryweather Cooper Senior Software Engineer | Integration Development Group | Continuing Development Jack Henry Associates, Inc.® | Lenexa, KS 66214 | Ext: 431050 | jocoo...@jackhenry.com -Original Message- From: Davis, Jeff [mailto:jda...@nanometrics.com] Sent: Thursday, February 26, 2015 5:27 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] using a custom action to read properties from a XML file I have custom UI dialog that has a Text control that has the variable. When the MSI runs it should populate that field with the data read from the XML. Control Type=MaskedEdit Id=MacID Width=270 Height=15 X=52 Y=184 Property=MAC_ID Text=[MACIDTemplate] / Control Type=Text Id=MacIDLabel Width=36 Height=10 X=11 Y=188 Text=MAC ID / -Original Message- From: John Cooper [mailto:jocoo...@jackhenry.com] Sent: Thursday, February 26, 2015 3:08 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] using a custom action to read properties from a XML file Well, which sequence is the custom action running? UI or Execute? If in the execute sequence, only public secure properties (properties in all upper case with a Secure=yes attribute) will be visible in the UI sequence. If in the UI sequence, are you firing this from a button, or is it just scheduled? If from a button, you're not going to get any logging. Try scheduling in directly in UI so you can get some logging. -- John Merryweather Cooper Senior Software Engineer | Integration Development Group | Continuing Development Jack Henry Associates, Inc.® | Lenexa, KS 66214 | Ext: 431050 |jocoo...@jackhenry.com -Original Message- From: Davis, Jeff [mailto:jda...@nanometrics.com] Sent: Thursday, February 26, 2015 4:54 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] using a custom action to read properties from a XML file Nothing happens. The value does not get populated in the UI. It still shows the default value of 0. But I am really just coding in the dark on this. I'm not sure what I am doing and not even sure I have everything correct. I just don't get the whole custom action concept and how properties get read and set? This was just a stab at what I thought would work. Jeff -Original Message- From: John Ludlow [mailto:john.ludlow...@gmail.com] Sent: Thursday, February 26, 2015 2:33 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] using a custom action to read properties from a XML file When you say not working, what do you mean exactly? Is it just not calling your CA, not finding the file, not getting
Re: [WiX-users] using a custom action to read properties from a XML file
When you say not working, what do you mean exactly? Is it just not calling your CA, not finding the file, not getting any results, or is it throwing an exception? Here are some things you can try: Check whether there any evidence in the log that the custom action has been called, and what the CustomActionData is. Also, put a few session.Log calls in strategic places in the code to see where it's getting to. Try writing similar code in a console application and seeing whether it can load the XML file And of course, the real way : http://blog.torresdal.net/2008/10/26/wix-and-dtf-debug-a-managed-custom-action-and-how-to-generate-an-msi-log/ Here are some possible theories: If the custom action data is what you have there, I would suggest that the relative path isn't being evaluated from where you think it would be - you may need to use a property to build up a full path to the file. Is it possible that the XML file has a namespace? If the document has a namespace and you don't handle that in your code (both in the C# and in the XPath) you won't get any results. Hope that helps John On 26 February 2015 at 21:32, Davis, Jeff jda...@nanometrics.com wrote: I am having a heck of time trying get my mind wrapped around the way to create and use a custom action in my C# Wix Project in Visual Studio 2013. I want to be able to open a specified XML file and return an attribute from a specified key and then use that to initialized a property in the installer and display it in the dialog. Then when installer is run it will write the value to a target XML file to the same key and attribute. In My case I have a MAC_ID Property that is in a UI text box that I want to initialize from a XML file attribute and then write to a new XML file during the install. The write is pretty straightforward since it is built into WIx. But I can't get the read working. I created this Custom Action public class CustomActions { [CustomAction] public static ActionResult ReadXmlValue(Session session) { string fileName = session.CustomActionData[FileName]; string xmlnode = session.CustomActionData[Node]; string key = session.CustomActionData[Key]; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(fileName); if (xmlDoc.DocumentElement != null) { XmlNodeList nodeList = xmlDoc.DocumentElement.SelectNodes(xmlnode); if (nodeList != null) foreach (XmlNode node in nodeList) { var selectSingleNode = node.SelectSingleNode(key); if (selectSingleNode != null) session[Value] = selectSingleNode.InnerText; } } return ActionResult.Success; } } My WXS script looks like this Property Id=MAC_ID Secure=yes Value=0/ Property Id=MACIDTemplate ![CDATA[-]] /Property CustomAction Id=myActionId BinaryKey=myAction DllEntry=ReadXMLValue Execute=deferred Return=check / CustomAction Id=SetCustomActionDataValue Return=check Property=myActionId Value=FileName='.\FilesToInstall\Program Files\Zygo\MetroProX\cfg\NewView.IC.xml';Node='\Settings\Section\Section\Section\add';Key='Mac' / CustomAction Id=ReadXMLValue Property=Value Value=[MAC_ID] / InstallExecuteSequence Custom Action=SetCustomActionDataValue Before=myActionIdNOT Installed/Custom Custom Action=myActionId Before=InstallFinalizeNOT Installed/Custom /InstallExecuteSequence But I don't think I have this setup right? Jeff Davis -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] using a custom action to read properties from a XML file
Sorry, I missed the mixed use of CustomActionData and session properties Immediate custom action is what I am trying to do. I have no need for it to be deferred. Ok, firstly, there is Execute=deferred on your myActionId action. Secondly, in your action code you are getting CustomActionData, which is only available for custom actions. Try changing your C# like so: string fileName = session[FILENAME]; string xmlnode = session[NODE]; string key = session[KEY]; And your WXS like so: CustomAction Id=myActionId BinaryKey=myAction DllEntry=ReadXMLValue Execute=immediate Return=check / CustomAction Id=set_FILE Property=FILE Value=... / CustomAction Id=set_NODE Property=FILE Value=... / CustomAction Id=set_KEY Property=FILE Value=... / (obviously, with the correct values and sequence entries) I do have one question: Is the file you are trying to access one that you install, or one that is expected to already be on the system? If you're installing it then you either need to make your action deferred, put the action after InstallFinalize, or schedule an InstallExecute somewhere, since an immediate action is not normally guaranteed to run after InstallFiles without one of these measures. I would recommend getting a book like this one: https://www.packtpub.com/application-development/wix-36-developers-guide-windows-installer-xml. It covers this stuff in some detail. On 26 February 2015 at 23:08, John Cooper jocoo...@jackhenry.com wrote: Well, which sequence is the custom action running? UI or Execute? If in the execute sequence, only public secure properties (properties in all upper case with a Secure=yes attribute) will be visible in the UI sequence. If in the UI sequence, are you firing this from a button, or is it just scheduled? If from a button, you're not going to get any logging. Try scheduling in directly in UI so you can get some logging. -- John Merryweather Cooper Senior Software Engineer | Integration Development Group | Continuing Development Jack Henry Associates, Inc.® | Lenexa, KS 66214 | Ext: 431050 | jocoo...@jackhenry.com -Original Message- From: Davis, Jeff [mailto:jda...@nanometrics.com] Sent: Thursday, February 26, 2015 4:54 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] using a custom action to read properties from a XML file Nothing happens. The value does not get populated in the UI. It still shows the default value of 0. But I am really just coding in the dark on this. I'm not sure what I am doing and not even sure I have everything correct. I just don't get the whole custom action concept and how properties get read and set? This was just a stab at what I thought would work. Jeff -Original Message- From: John Ludlow [mailto:john.ludlow...@gmail.com] Sent: Thursday, February 26, 2015 2:33 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] using a custom action to read properties from a XML file When you say not working, what do you mean exactly? Is it just not calling your CA, not finding the file, not getting any results, or is it throwing an exception? Here are some things you can try: Check whether there any evidence in the log that the custom action has been called, and what the CustomActionData is. Also, put a few session.Log calls in strategic places in the code to see where it's getting to. Try writing similar code in a console application and seeing whether it can load the XML file And of course, the real way : http://blog.torresdal.net/2008/10/26/wix-and-dtf-debug-a-managed-custom-action-and-how-to-generate-an-msi-log/ Here are some possible theories: If the custom action data is what you have there, I would suggest that the relative path isn't being evaluated from where you think it would be - you may need to use a property to build up a full path to the file. Is it possible that the XML file has a namespace? If the document has a namespace and you don't handle that in your code (both in the C# and in the XPath) you won't get any results. Hope that helps John On 26 February 2015 at 21:32, Davis, Jeff jda...@nanometrics.com wrote: I am having a heck of time trying get my mind wrapped around the way to create and use a custom action in my C# Wix Project in Visual Studio 2013. I want to be able to open a specified XML file and return an attribute from a specified key and then use that to initialized a property in the installer and display it in the dialog. Then when installer is run it will write the value to a target XML file to the same key and attribute. In My case I have a MAC_ID Property that is in a UI text box that I want to initialize from a XML file attribute and then write to a new XML file during the install. The write is pretty straightforward since it is built into WIx. But I can't get the read working. I created
Re: [WiX-users] WiX 3.9 R2 - Debugging WPF Burn Application
We have the following code in our Run method: #ifdef DEBUG Debugger.Launch(); #endif When we compile as debug and then run the bundle, we get a prompt to attach a debugger from this Debugger.Launch() call. On the dev box (with Visual Studio installed) this would normally be a list of open Visual Studio instances - we simply choose the one that has the correct solution open, and we can debug. When debugging remotely, the prompt is different - it's a Retry/Cancel prompt. We make sure we have the remote debug monitor installed, select Retry and then choose to Attach Process in the correct instance of Visual Studio on our dev box. Then we enter the machine IP and connection credentials and we can debug. On 31 January 2015 at 20:11, Phill Hogland phogl...@rimage.com wrote: To debug my WPF BA, I just build all projects against the installed released wix 3.9 RTM (or 3.9 R2 installed). Then I go back to my WPF project and enable debug/trace in project properties, add a Debugger.Launch() line to the code of interest, and set the start path to point at the bundle exe. Then compile the WPF project and the bundle again. Then right-click on the WPF project (in VS) select Debug instance. -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/WiX-3-9-R2-Debugging-WPF-Burn-Application-tp7599102p7599103.html Sent from the wix-users mailing list archive at Nabble.com. -- Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Bundle within a bundle
I saw some install failures when I tried this but this may have been down to some incorrect handling in my custom BA. I haven't tried this with a package based on the WixStdBA You will also get the child package listed as an entry in the ARP because there's no way for the parent bundle to tell the child bundle to hide itself. (http://wixtoolset.org/issues/4454/) On 7 October 2014 14:27, Kevin Parkes kevin.par...@wacom.eu wrote: I know it's possible to have one bundle as an ExePackage within a second bundle, but is it a good idea? Any gotchas or downside? Thanks -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Bundle-within-a-bundle-tp7597164.html Sent from the wix-users mailing list archive at Nabble.com. -- Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer http://pubads.g.doubleclick.net/gampad/clk?id=154622311iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer http://pubads.g.doubleclick.net/gampad/clk?id=154622311iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Removing bundle from ARP
Do you mean that if you install the bundle, then uninstall the packages individually (not using the bundle) then the bundle is still registered? If so, that's expected, and no there's no action in the bundle that gets invoked if you uninstall each package outside the bundle. On 3 October 2014 14:51, vorsichtdiekurve mp.mateusz.polan...@gmail.com wrote: Hi there, I somehow managed to write my own managed bootstrapper application. It seems to work correctly. The chained packages install/uninstall in the desired way. However, the bundle itself remains registered in ARP even when all the related packages have been removed. Is there a burn engine action/method/whatever i could invoke to unregister the bundle and possibly also remove unnecessary registry entries for it? Shouldn't it automatically unregister when all of the chained packages are absent on the machine? Thnaks in advance for any help. Mateusz -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Removing-bundle-from-ARP-tp7597118.html Sent from the wix-users mailing list archive at Nabble.com. -- Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer http://pubads.g.doubleclick.net/gampad/clk?id=154622311iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer http://pubads.g.doubleclick.net/gampad/clk?id=154622311iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] What does '' and '!' inside CDATA[] do?
Pay attention to when these actions are sequenced. In particular, as the linked article mentions, any action that relies on these conditions should be sequenced after CostFinalize. On 13 May 2014 23:03, b.ras...@leonit.nl wrote: Dit mailadres is niet meer in gebruik. Mail kan je voortaan sturen naar basti...@careercontrol.nl. -- Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free. http://p.sf.net/sfu/SauceLabs ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free. http://p.sf.net/sfu/SauceLabs ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
[WiX-users] Relative path sometimes used for WiX extension references.
Hi, When I add a reference to WixUtilExtension in my WiX project, this is what gets added to the .wixproj: ItemGroup WixExtension Include=WixUtilExtension HintPath$(WixExtDir)\WixUtilExtension.dll/HintPath NameWixUtilExtension/Name /WixExtension /ItemGroup When my colleague does this, he sometimes gets the above, but usually gets this: ItemGroup WixExtension Include=WixUtilExtension HintPath ..\..\..\..\..\..\..\..\..\..\..\..\..\Program Files (x86)\WiX Toolset v3.8\bin\WixUtilExtension.dll /HintPath NameWixUtilExtension/Name /WixExtension /ItemGroup Which causes an error for me. Although we both have WiX 3.8 installed to the default location (c:\Program Files (x86)\WiX Toolset v3.8) I have all my source on a different drive, so that's where the relative path starts from. Since there's no way that a relative path will ever be able to reference a file on a different drive, it fails on my machine. My colleague is having to check his project changes carefully to make sure he doesn't accidentally break it, and we think the tools could help us more. I'm pretty sure that in his case Votive is thinking aha, I can draw a relative path from here to there! and just using that, while in my case it's deciding it can't possibly do that so it's falling back on whatever $(var.WixExtDir) tells it to do. I found a bug (http://sourceforge.net/p/wix/bugs/2209/) on SourceForge, but though it says migrated I was unable to find a bug on the new bug tracking system. The closest I could find was this one : http://wixtoolset.org/issues/2834/ but that's a totally separate issue. I wonder if 2209 got lost along the way from SF to the new system. Should I create it in the new system? In terms of a fix, I feel like it should always use $(WixExtDir) regardless of whether a relative path *could* be used. Meanwhile, we have to decide how to handle it on our side until it's fixed. We have tools that we could use to check this for us, but that's less than ideal. We could also do what this guy does : http://wixtoolset.org/issues/2834/ and keep our WiX toolset in source control but for various reasons we didn't want to do that. Any ideas? Thanks -- Put Bad Developers to Shame Dominate Development with Jenkins Continuous Integration Continuously Automate Build, Test Deployment Start a new project now. Try Jenkins in the cloud. http://p.sf.net/sfu/13600_Cloudbees ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] C# Custom Actions - Renaming Functions
This may be a silly question, but have you also cleared out your temp directories? Also, did you I think it should be possible to export the DLL using Orca to a file on disk, and then examine it to see what exported functions it has (say, with Dependency Walker). This should settle the question of whether it's the exported function that's the issue or something else. On 19 March 2014 22:07, Levi Wilson l...@leviwilson.com wrote: Yes, I actually started by using ReSharper to rename my CA method, as I have unit tests around all of them. After that I updated all of my wxs files so that they are correct. I backed out the changes for now, but I can try it again later to see what the full log is. I may be able to put together a sample app to illustrate it on GitHub or something. Thanks, Levi On Wed, Mar 19, 2014 at 6:00 PM, Hoover, Jacob jacob.hoo...@greenheck.comwrote: I assume you've also modified your C# CustomAction to include the updated name and rebuilt it? Do you have a full log available (or at least some of the lines before that where the CA is being extracted). If need be, one could peek into the temp file after extraction and ensure it's using the updated assembly. -Original Message- From: Levi Wilson [mailto:l...@leviwilson.com] Sent: Wednesday, March 19, 2014 4:53 PM To: wix-users@lists.sourceforge.net Subject: [WiX-users] C# Custom Actions - Renaming Functions Is it me, or is it impossible to rename a C# custom action function once you've built it? My wxs files are correct to reflect the new name. I have verified that the binary file that is in there has the newly named method after I build it (I saved it from Orca and did `dumpbin saved.dll /EXPORTS` to see it). However, when I go to run the install I get: Error 1723. There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. Action ValidateSQLAdminCredentials, entry: ValidateSQLAdminCredentials, library: C:\Users\VMWARE~1\AppData\Local\Temp\MSI8F83.tmp The one that is reflected isn't even the one that I renamed, but that would be the first time it tried to load my DLL. I've cleared out my bin and obj directories in my CA project as well as my installer project. What am I missing or where can I look to help troubleshoot? I'm using Wix 3.8 -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] uI on silent uninstall
That's probably because the MSI is running in the just-a-progress-bar mode during uninstall. MSI message boxes are being suppressed. On 19 March 2014 22:56, Pavan Konduru pavan.kond...@accelrys.com wrote: Did you declare the custom action in the .wxs file? -Original Message- From: Harold Wood (H10 Capital) [mailto:v-wow...@microsoft.com] Sent: Wednesday, March 19, 2014 3:29 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] uI on silent uninstall I did that and it didn't work. -Original Message- From: Pavan Konduru [mailto:pavan.kond...@accelrys.com] Sent: Wednesday, March 19, 2014 3:20 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] uI on silent uninstall Make the condition REMOVE=ALL -Original Message- From: Harold Wood (H10 Capital) [mailto:v-wow...@microsoft.com] Sent: Wednesday, March 19, 2014 2:49 PM To: General discussion about the WiX toolset. Subject: [WiX-users] uI on silent uninstall Ok this is what I have so far: Product.wxs !--Display the uninstall message box so user is informed we will not remove the databases-- Custom Action =UninstallMessage After=InstallFinalizeRemove/Custom Custom Action =UninstallMessage.Show After=UninstallMessageRemove/Custom CustomAction.cs [CustomAction] public static ActionResult UninstallMessage(Session session) { if (session == null) { logEventsApp.WriteLoggingEvent(string.Format(CultureInfo.InvariantCulture, {0} ; {1}, Resources.ArgumentNullError, session), session); throw new ArgumentNullException(session, Resources.ArgumentNullError); } // This is just to display a message box that informs the user that they will have to remove the databases manually StringBuilder notificationMessage = new StringBuilder(The actual databases will not be removed from the server by this.); notificationMessage.Append(\r\n\r\n); notificationMessage.Append(You will have to manually remove the Databases from your server.); Record record = new Record(); record.FormatString = notificationMessage.ToString(); MessageResult value = session.Message(InstallMessage.Info | (InstallMessage)MessageIcon.Warning | (InstallMessage)MessageButtons.OK, record); return ActionResult.Success; } And im still not getting the message box. So what am I doing wrong? Thanks Woody -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download
Re: [WiX-users] WiX Queries
With regard to creating bootstrapper applications, the official documentation is a little lacking but here are some resources which may help: http://bryanpjohnston.com/2012/09/28/custom-wix-managed-bootstrapper-application/ http://blogs.msdn.com/b/heaths/archive/2011/10/28/introducing-managed-bootstrapper-applications.aspx http://www.packtpub.com/windows-installer-xml-3-6-developers-guide/book (no it's not free but it's worth the asking price and Chapter 16 covers managed bootstrapper applications) If you just want to be able to specify the log location on the command line, I believe there is an argument for that. By default (I'm not even sure if there's an option to change this) each package will get a log, and they're all pretty well named based on the package ID so it's pretty obvious what log relates to which package. On 18 March 2014 22:49, Rob Mensching r...@firegiant.com wrote: 1. Yes. You can handle disk switching in the source resolution callback from the engine. 2. Use same UpgradeCode for upgrading Bundles and make sure newer versions have higher versions. 3. Yes, via the various Execute callbacks. 4. You can definitely read the Variable that contains the log file for the MSI. I've never tried but you may be able to set it after Plan() but before Apply() and have it write to a custom location. If not, I'm certain you can copy/move the logs at the end of the install. 5. We always appreciate contributions to the documentation. Currently, the source code in the WiX toolset itself provides a lot of guidance. 6. Yes, in the ExecutePackageComplete (or something close to that name) callback. You can also get all the intermediate messages from Windows Installer via MsiExecuteMessage (or something close to that name) callback. 7. Wixstdba expects themes to be embedded into the Bundle so updating a theme requires rebuilding the bundle when using wixstdba. ___ FireGiant | Dedicated support for the WiX toolset | http://www.firegiant.com/ -Original Message- From: Deepak Malik [mailto:deepak.ma...@microsoft.com] Sent: Tuesday, March 18, 2014 3:17 PM To: wix-users@lists.sourceforge.net Subject: [WiX-users] WiX Queries Hi Team, Could you please help me answer these to them. Wix Burn (General): We will have different MSI's spread out across multiple DVD's. For example, we'll have a Disk1 which contains an MSI for some base features. Disk2 will contains MSI's that add additional specialized product features. Disk3 MSI's will add even more specialized product features. Is it possible to create a Chain that references different DVD's? If so, how? We do not want the bootstrapper application to embed the MSI's. How does Wix Burn handle upgrades? What information, if any, would the Bundle need to include in order to handle upgrades? If creating a managed custom bootstrapper, what do we have to implement to handle upgrades? Does Burn automatically roll back Install1 if Install2 fails? Do we get to control this? If so, where? We would like to generate MSI log files for each MSI run in our Chain. Is it possible to specify where these files go? How? Wix Burn (Custom Managed Bootsrapper App) We need solid documentation/examples of managed bootstrapper working with Wix burn. Documentation is sparse to say the least... Is it possible to capture the exit code of an MSI in the bootstrapper application? If so, how? Wix Burn (Standard Bootstrapper Application) http://wixtoolset.org/documentation/manual/v3/bundle/wixstdba/wixstdba_customize.htmlshows how to manipulate the predefined layouts. Is it possible to create additional layouts and NOT have to recompile the application? For example - we can imagine having screen1 display options for MSI1 and screen2 display options for MSI2. If MSI3 is introduced later which has its own set of options, would we have to define a new layout and then rebuild the entire bootstrapper app? Or is there a way to plug in the new layout at the end without rebuilding? Regards, Deepak Malik -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the
Re: [WiX-users] ICE03 or Unresolved reference
You would need to define the table schema using the CustomTable element. Try using dark.exe on an msi which has thay merge modules and seeing what CustomTable elements you get in the output. Hope that helps On 11 Mar 2014 02:15, Dmitry Nechaev dmitry.nech...@objectconsulting.com.au wrote: Hi All I started to work with WIX and got stack with weird behaviour of WIX 3.8 for Visual Studio 2013. I'm trying to merge Crystal Reports msm module into the project as below: A File with Crystal Reports MSM: InstallExecuteSequence MsiPublishAssemblies Sequence=1502 / MsiUnpublishAssemblies Sequence=1501 / /InstallExecuteSequence AdvertiseExecuteSequence MsiPublishAssemblies Sequence=1502 / /AdvertiseExecuteSequence A file with assembly info: Feature Id=ProductFeature Title=SetupFARMS Level=1 ComponentGroupRef Id=FARMSBin.Components / /Feature Feature Id=CrystalReports Title=Crystal Reports Runtime Description=Crystal Reports Runtime Level=1 MergeRef Id=CrystalReportsMSM / /Feature !-- To prevent ICE03 errors from the Crystal merge module -- EnsureTable Id=Verb / ... twentish entries like these EnsureTable Id=ActionText / !-- EnsureTable Id=SeagateIPService / EnsureTable Id=SeagateCondition / EnsureTable Id=HelpPlugin / EnsureTable Id=HelpFilter / EnsureTable Id=HelpFileToNamespace / EnsureTable Id=HelpFile / EnsureTable Id=Extention / EnsureTable Id=CrystalRedirection / EnsureTable Id=BOBJSourcePath / EnsureTable Id=BOBJMetabase / -- When I compile the project as is, I get a lot of ICE03 errors: ICE03: Table: SeagateIPService Column: ServiceName Missing specifications in _Validation Table (or Old Database) ...\SetupFARMS.msi When I fix this with InsureTable I get opposite error: Unresolved reference to symbol 'WixCustomTable:SeagateIPService' in section 'Product:{C2C67BDE-89AA-4F6B-9773-73763856F023}'. ...\Assemble.wxs There is no way for me to fix ICE03 error for this MSM using InsureTable for the last dozen of tables commented out in the code above. Could someone help me with this please? The msm module I took from here: https://smpdl.sap-ag.de/~sapidp/01200252310634042010E/crxir2sp6_net_mm.zip Thanks everyone. Dmitry Nechaev EMAIL DISCLAIMER This email message and its attachments are confidential and may also contain copyright or privileged material. If you are not the intended recipient, you may not forward the email or disclose or use the information contained in it. If you have received this email message in error, please advise the sender immediately by replying to this email and delete the message and any associated attachments. Any views, opinions, conclusions, advice or statements expressed in this email message are those of the individual sender and should not be relied upon as the considered view, opinion, conclusions, advice or statement of this company except where the sender expressly, and with authority, states them to be the considered view, opinion, conclusions, advice or statement of this company. Every care is taken but we recommend that you scan any attachments for viruses. -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Learn Graph Databases - Download FREE O'Reilly Book Graph Databases is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] if(language==en-US) logic?
http://stackoverflow.com/questions/1805405/find-vista-language-using-wix This SO question might be helpful On 1 Mar 2014 10:15, Bin Yin ybdes...@gmail.com wrote: is there any logic in WiX as: if (OSLanguage==en-US) { copy file1 to dir1 } else if(OSLanguage==zh-CN) { copy file2 to dir2 } else if(OSLanguage==de-DE) { copy file3 to dir3 } else { copy file4 to dir4 } -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] SQL Server 64 Bit
No problemo :) On 26 February 2014 13:17, Steven Ogilvie steven.ogil...@titus.com wrote: Ravi, Please provide verbose logging of where it is failing... http://support.microsoft.com/kb/223300 The simplest way for logging a single session is to start the installer with the /l switch msiexec /i c:\path\to\myinstall.msi /l*v c:\path\to\myinstall.log (thanks John) Steve -Original Message- From: Ravishankar [mailto:ravishankar.krishnasw...@idsfortune.com] Sent: February-26-14 4:13 AM To: General discussion for Windows Installer XML toolset. Subject: [WiX-users] SQL Server 64 Bit Hi, I have a installer(msi) created on the development machine with the below specifications 1.Win 7(64 bit) 2.SQL Server 2008 R2 - SP2(32 Bit) 3.VS 2010 I have used the sql:SqlDatabase funcationality of creating Database and executing *.sql scripts, this works on the development machine perfectly Now am trying to install on a separate machine with below specs and it FAILS 1.Win 2008 Server R2 2.SQL Server 2008 R2 - SP2(64 Bit) 3.(.NET framework 4.0) Its urgent and i need your help Thanks and Regards Ravi Shankar K -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] How to not copy a file in subsequent installations?
BTW, you did mention the scheduling in your original mail - I missed it. My bad. On 26 February 2014 15:39, John Ludlow john.ludlow...@gmail.com wrote: Aha! MSI (s) (00:64) [09:59:21:043]: File: C:\Program Files\WixWindowsService2012\WixWindowsService2012.exe.config; To be installed; Won't patch;No existing file MSI (s) (00:64) [09:59:21:043]: Source for file 'WixWindowsService2012.exe.config' is compressed So why is there No existing file? Where do you have your RemoveExistingProducts action scheduled? I think what's happening is your REP is removing the file, then when your newer version comes along it finds the file missing so it install its copy. If possible, move RemoveExistingProducts later in the sequence. Check these links out: http://jpassing.com/2007/06/16/where-to-place-removeexistingproducts-in-a-major-msi-upgrade/ http://msdn.microsoft.com/en-us/library/aa371197(v=vs.85).aspx On 26 February 2014 15:10, faujong fiefie.ni...@gmail.com wrote: I recreated the .MSI file today, and reran the installation with the following command: msiexec /i C:\Installs\WixWindowsService2012Setup\bin\Release\WixWindowsService2012Setup.msi /l*v C:\Installs\WixWindowsService2012Setup\bin\Release\install.log. It still overrides the config file, and this is from the log file: MSI (s) (00:9C) [09:59:20:624]: Executing op: FileRemove(,FileName=WixWindowsService2012.exe.config,,ComponentId={blabla}) MSI (s) (00:9C) [09:59:20:626]: Verifying accessibility of file: WixWindowsService2012.exe.config MSI (s) (00:64) [09:59:20:715]: Executing op: ComponentRegister(ComponentId={blabla},KeyPath=C:\Program Files\WixWindowsService2012\WixWindowsService2012.exe.config,State=3,,Disk=1,SharedDllRefCount=0,BinaryType=1) MSI (s) (00:64) [09:59:21:042]: Executing op: FileCopy(SourceName=fctymilg.con|WixWindowsService2012.exe.config,SourceCabKey=WixWindowsService2012.exe.config,DestName=WixWindowsService2012.exe.config,Attributes=512,FileSize=538,PerTick=65536,,VerifyMedia=1,CheckCRC=0,,,InstallMode=58982400,HashOptions=0,HashPart1=1770114632,HashPart2=-1876651659,HashPart3=212308780,HashPart4=-2030918298,,) MSI (s) (00:64) [09:59:21:043]: File: C:\Program Files\WixWindowsService2012\WixWindowsService2012.exe.config; To be installed; Won't patch;No existing file MSI (s) (00:64) [09:59:21:043]: Source for file 'WixWindowsService2012.exe.config' is compressed Why does the installation remove and copy the file, even though the config file in the installer has a different date and time with the config file on the installed folder ? Thank you. -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/How-to-not-copy-a-file-in-subsequent-installations-tp7592929p7592949.html Sent from the wix-users mailing list archive at Nabble.com. -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] How to not copy a file in subsequent installations?
Aha! MSI (s) (00:64) [09:59:21:043]: File: C:\Program Files\WixWindowsService2012\WixWindowsService2012.exe.config; To be installed; Won't patch;No existing file MSI (s) (00:64) [09:59:21:043]: Source for file 'WixWindowsService2012.exe.config' is compressed So why is there No existing file? Where do you have your RemoveExistingProducts action scheduled? I think what's happening is your REP is removing the file, then when your newer version comes along it finds the file missing so it install its copy. If possible, move RemoveExistingProducts later in the sequence. Check these links out: http://jpassing.com/2007/06/16/where-to-place-removeexistingproducts-in-a-major-msi-upgrade/ http://msdn.microsoft.com/en-us/library/aa371197(v=vs.85).aspx On 26 February 2014 15:10, faujong fiefie.ni...@gmail.com wrote: I recreated the .MSI file today, and reran the installation with the following command: msiexec /i C:\Installs\WixWindowsService2012Setup\bin\Release\WixWindowsService2012Setup.msi /l*v C:\Installs\WixWindowsService2012Setup\bin\Release\install.log. It still overrides the config file, and this is from the log file: MSI (s) (00:9C) [09:59:20:624]: Executing op: FileRemove(,FileName=WixWindowsService2012.exe.config,,ComponentId={blabla}) MSI (s) (00:9C) [09:59:20:626]: Verifying accessibility of file: WixWindowsService2012.exe.config MSI (s) (00:64) [09:59:20:715]: Executing op: ComponentRegister(ComponentId={blabla},KeyPath=C:\Program Files\WixWindowsService2012\WixWindowsService2012.exe.config,State=3,,Disk=1,SharedDllRefCount=0,BinaryType=1) MSI (s) (00:64) [09:59:21:042]: Executing op: FileCopy(SourceName=fctymilg.con|WixWindowsService2012.exe.config,SourceCabKey=WixWindowsService2012.exe.config,DestName=WixWindowsService2012.exe.config,Attributes=512,FileSize=538,PerTick=65536,,VerifyMedia=1,CheckCRC=0,,,InstallMode=58982400,HashOptions=0,HashPart1=1770114632,HashPart2=-1876651659,HashPart3=212308780,HashPart4=-2030918298,,) MSI (s) (00:64) [09:59:21:043]: File: C:\Program Files\WixWindowsService2012\WixWindowsService2012.exe.config; To be installed; Won't patch;No existing file MSI (s) (00:64) [09:59:21:043]: Source for file 'WixWindowsService2012.exe.config' is compressed Why does the installation remove and copy the file, even though the config file in the installer has a different date and time with the config file on the installed folder ? Thank you. -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/How-to-not-copy-a-file-in-subsequent-installations-tp7592929p7592949.html Sent from the wix-users mailing list archive at Nabble.com. -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] How to not copy a file in subsequent installations?
Um, yes. Have you considered using *afterInstallExecute *or *afterInstallExecuteAgain *instead? On 26 February 2014 15:49, faujong fiefie.ni...@gmail.com wrote: Hi John, No existing file is because prior to it the installation removed the file MSI (s) (00:9C) [09:59:20:624]: Executing op: FileRemove(,FileName=WixWindowsService2012.exe.config,,ComponentId={blabla}) MSI (s) (00:9C) [09:59:20:626]: Verifying accessibility of file: WixWindowsService2012.exe.config This is in Product.wxs (I set Schedule=afterInstallInitialize in MajorUpgrade element) Product Id=* Name=WixWindowsService2012..UpgradeCode=bla Package InstallerVersion=200../ Upgrade Id=bla UpgradeVersion OnlyDetect=no Property=PREVIOUSFOUND Minimum=1.0.0.0 IncludeMinimum=yes Maximum=99.0.0.0 IncludeMaximum=no / /Upgrade MajorUpgrade Schedule=afterInstallInitialize/ : Component Id=ProductComponent Win64=yes File Id=WixWindowsService2012.exe Name=WixWindowsService2012.exe Source=$(var.WixWindowsService2012.TargetPath) Vital=yes KeyPath=yes DiskId=1/ ServiceInstall../ServiceInstall ServiceControl Id=StartService Start=install Stop=both Remove=uninstall Name=WixWindowsService2012 Wait=yes / /Component -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/How-to-not-copy-a-file-in-subsequent-installations-tp7592929p7592952.html Sent from the wix-users mailing list archive at Nabble.com. -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Custom action to write into a file while installing and uninstalling MSI file
Is this just for logging purposes? Is the normal MSI log not sufficient? If it's not, then depending on your situation, there's a number of options: * The XmlFile element in the Util extension can be tied to a component and update a target file when that component is installed or uninstalled. * The IniFile table * A custom action based on the C++ or C# custom action templates that the VS integration gives you Ideally you want a technique that's table driven and transactional (so that the manifest reflects the state of the system after a rollback). On 26 February 2014 20:44, Mamidi, Balasubrahmanyam balu.mam...@flightsafety.com wrote: Hi, we package the lessons and give to users in the format of msi file using wix installer. When users install/ Uninstall these lessons MSI file on their PC's, I should able to log this information with date time MSI name into text file( file needs to create if not exists) under location (per say C:\FlightSafety). Can someone help to write these custom actions or any other solutions? Thanks, Balu -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] How to not copy a file in subsequent installations?
Have a read of this: http://msdn.microsoft.com/en-us/library/aa370531(v=vs.85).aspx Now, before you do your upgrade, have a look at the file's modified and creation dates. If they match, then MSI takes that as a signal that they can be overwritten (because it sets those dates to the same value during install). It can also, optionally, do a hash check. If a user has modified the file, then the dates should be different and MSI will leave the file alone. So the question is whether the file would be modified post installation? If so, then you would need to look at a verbose upgrade log for further details. On 25 February 2014 20:13, faujong fiefie.ni...@gmail.com wrote: n the Product.wxs, I set Schedule=afterInstallInitialize in the MajorUpgrade so that if the installation fails, it will roll back to the previous version. Our Windows Service uses app.config that the installer copied to the installed machine. We do this by including the below line in the Product.wxs: Component Id=Config Win64=yes File Source=$(var.WixWindowsService2012.TargetDir)WixWindowsService2012.exe.config Name=WixWindowsService2012.exe.config Vital=yes KeyPath=yes / /Component We only want to copy this app.config file on the first installation, and we do NOT want to copy it in the subsequent installations. When I comment out the above Component element in the Product.wxs, the installation failed because during installation, it deletes the app.config on the installed folder, and since the Windows Service requires it to run, the installation fails. Following http://stackoverflow.com/questions/1912037/copy-if-not-exist-in-wix, I thought if I set the File element to be like below, it will NOT copy the file if the file already exists in the installed folder: File Source=$(var.WixWindowsService2012.TargetDir)WixWindowsService2012.exe.config/ But, the above command still override the file. How can I make the installation to not copy the app.config to the installed folder if app.config already exists there ? Thank you. -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/How-to-not-copy-a-file-in-subsequent-installations-tp7592929.html Sent from the wix-users mailing list archive at Nabble.com. -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] How to not copy a file in subsequent installations?
Follow the instructions here: http://support.microsoft.com/kb/223300 The simplest way for logging a single session is to start the installer with the /l switch msiexec /i c:\path\to\myinstall.msi /l*v c:\path\to\myinstall.log On 25 February 2014 23:56, fiefie.niles fiefie.ni...@gmail.com wrote: Where can I get the verbose install log from ? Sent via the Samsung Galaxy S(tm)III, an ATT 4G LTE smartphone Original message From: Hoover, Jacob jacob.hoo...@greenheck.com Date:02/25/2014 5:12 PM (GMT-06:00) To: General discussion about the WiX toolset. wix-users@lists.sourceforge.net Subject: Re: [WiX-users] How to not copy a file in subsequent installations? What are the exact options you are using when reinstalling? (You can pass nasty options to msiexec to have it force overwrite things.) A verbose install log will tell you exactly why it's doing it. -Original Message- From: Fiefie Niles [mailto:fiefie.ni...@nadex.com] Sent: Tuesday, February 25, 2014 3:37 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] How to not copy a file in subsequent installations? If that's the case, then why when I re-install today, it overrides the app.config, even though the time of the app.config in the installer and on the installed folder is different ? -Original Message- From: Hoover, Jacob [mailto:jacob.hoo...@greenheck.com] Sent: Tuesday, February 25, 2014 3:29 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] How to not copy a file in subsequent installations? It's date a time, not just date. -Original Message- From: faujong [mailto:fiefie.ni...@gmail.com] Sent: Tuesday, February 25, 2014 3:16 PM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] How to not copy a file in subsequent installations? Thank you for your reply. The first installation was today, so the app.config file date is today's date. I then today modified the app.config file on the installed folder. Do I understand it correctly that 1. when I re-install again today, it overrides the app.config file because the dates of the file in the installer and on the installed folder are the same, ie today's date ? 2. If I install tomorrow, since the dates of the file installer will be tomorrow's date, and the date of the fiile on the installed folder is tomorrow, it will NOT override the file ? -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/How-to-not-copy-a-file-in-subsequent-installations-tp7592929p7592931.html Sent from the wix-users mailing list archive at Nabble.com. -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users This electronic mail message and any attachments may contain confidential and/or privileged information that is only intended for use by, North American Derivatives Exchange, Inc. (Nadex) or third-parties to whom it is directed. The contents of this electronic mail message are not to be copied, modified, published, transmitted, distributed, performed, displayed, or sold in any way. If you are not the addressee, you are prohibited from disclosing, copying, distributing or taking any action based on the contents of this message. If you have received this message by mistake, please contact the sender immediately. All email sent to or from the Nadex corporate email system may be retained, monitored and/or reviewed by Nadex personnel. Nadex is located at 311 South Wacker Drive, Suite 2675, Chicago, IL 60606. Nadex is subject to U.S. regulatory oversight by the CFTC. Futures, options and swaps trading involves risk and may not be appropriate for all investors. The contents hereof are not an offer, or a solicitation of an offer, to buy or sell any particular financial instrument
Re: [WiX-users] Burn custom UI, second browse button
I think you may need to use something like this: http://wixextba.codeplex.com/ On 13 February 2014 11:21, Hans De Groot hans.degr...@nice.com wrote: Hello, I'm trying to a second location + browse button the standard bootstrapper application. I currently have this: Page Name=Options Text X=11 Y=70 Width=-11 Height=30 FontId=2#(loc.OptionsHeader)/Text Text X=11 Y=111 Width=-11 Height=17 FontId=3#(loc.OptionsLocationLabel)/Text Editbox Name=FolderEditbox X=11 Y=133 Width=-91 Height=21 TabStop=yes FontId=3 FileSystemAutoComplete=yes / Button Name=BrowseButton X=-11 Y=132 Width=75 Height=23 TabStop=yes FontId=3#(loc.OptionsBrowseButton)/Button Text X=11 Y=158 Width=-11 Height=17 FontId=3#(loc.OptionsLogfileLabel)/Text Editbox Name=LogFolderEditbox X=11 Y=180 Width=-91 Height=21 TabStop=yes FontId=3 FileSystemAutoComplete=yes / Button Name=BrowseButtonLog X=-11 Y=179 Width=75 Height=23 TabStop=yes FontId=3#(loc.OptionsBrowseButton)/Button Button Name=OptionsOkButton X=-91 Y=-11 Width=75 Height=23 TabStop=yes FontId=0#(loc.OptionsOkButton)/Button Button Name=OptionsCancelButton X=-11 Y=-11 Width=75 Height=23 TabStop=yes FontId=0#(loc.OptionsCancelButton)/Button /Page This works for the layout part, but not for the functional part. The browse button does not do anything. And when I change it to BrowseButton it interacts with the install folder edit box. How do I change the stba to support multiple input fields with a browse button. Hope you can help, Regards, Hans de Groot -- Android apps run on BlackBerry 10 Introducing the new BlackBerry 10.2.1 Runtime for Android apps. Now with support for Jelly Bean, Bluetooth, Mapview and more. Get your Android app in front of a whole new audience. Start now. http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Android apps run on BlackBerry 10 Introducing the new BlackBerry 10.2.1 Runtime for Android apps. Now with support for Jelly Bean, Bluetooth, Mapview and more. Get your Android app in front of a whole new audience. Start now. http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Digitally Sign BootStrapper project
JCHoover responded to that SO question. You should also check out these discussion threads on this forum: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Signing-bundles-changes-needed-to-each-bundle-wixproj-td7591050.html http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Re-Signing-bundles-changes-needed-to-each-bundle-wixproj-td7591062.html#a7591092 I've also added another answer to build on Jacob's. On 9 December 2013 15:23, Brian Enderle bria...@gmail.com wrote: I have posted a question on StackOverflow asking how to digitally sign a bootstrapper: http://stackoverflow.com/questions/20381525/wix-digitally-sign-bootstrapper-project . I can successfully sign an installer (MSI file) but am having some issues with the bootstrapper (EXE file). I would appreciate any input on this. Brian If you can't explain it simply, you don't understand it well enough. - Albert Einstein -- Sponsored by Intel(R) XDK Develop, test and display web and hybrid apps with a single code base. Download it for free now! http://pubads.g.doubleclick.net/gampad/clk?id=111408631iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Sponsored by Intel(R) XDK Develop, test and display web and hybrid apps with a single code base. Download it for free now! http://pubads.g.doubleclick.net/gampad/clk?id=111408631iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
[WiX-users] Hex codes in bundle errors
Hi, I'm writing a bundles to chain some installs together. Currently this is WiX 3.6, though I'll be considering an upgrade to 3.8 at some point. The bundle uses the RtfTheme theme, customized with the bal:WixStandardBootstrapperApplication/@ThemeFile attribute. My question is this: Is there a way to remove the hex codes from the error message when a bundle fails. We have a bal:Condition element which throws a message if certain prerequisites aren't installed, and this message gets prefixed with the hex code 0x81f40001. Personally, I don't have a problem with this but the QA engineer asked me to change this as she didn't like the look of it, and I said I'd try to find out if there was a way. So if there's a SuppressHexCodesInErrorMessages variable or attribute somewhere that I haven't found, please point me in the right direction. Thanks John -- Sponsored by Intel(R) XDK Develop, test and display web and hybrid apps with a single code base. Download it for free now! http://pubads.g.doubleclick.net/gampad/clk?id=111408631iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Signing bundles - changes needed to each bundle wixproj
A poll might be a good idea - at least then we / you know what the situation is. If it turns out there's no sensible default because everyone *is* doing everything a different way, then it's sensible to not provide a default. If it turns out that actually a lot of people do it a similar way then maybe it's worth providing a default. Or perhaps it's just worth improving the documentation because that improves both cases without breaking anybody. I'd be happy to submit a documentation update. (And yes, the codeproject article I said I'd do on extensions is still sitting half-finished waiting for me to find time for it). One thing I think might be helpful is if there's a topic on signing (or perhaps two - one for bundles and one for MSIs). At the moment the experience is that I google sign wix bundle and get to the insignia page - which tells me not to use that. One (or two) topic(s) that listed the 3 (I think?) options for signing might be easier for people to get to grips with. I think the options are: For signing a Bundle: 1) Build the bundle, then use the following commands as a post build step: insignia -ib bundle.exe -o engine.exe signtool /a engine.exe /sha1 hash /t timestamp url insignia -ab engine bundle.exe -o bundle.exe signtool /a bundle.exe /sha1 hash /t timestamp url 2) Use the CustomAfterWixTargets property to specify a .targets file which contains the SignBundle and SignBundleEngine targets 3) Add the SignBundle and SignBundleEngine targets into your .wixproj (probably by adding an Import reference in your .wixproj to a .targets file) For signing an MSI: 1) Build the MSI with external cabs, sign the cabs, then use insignia to inscribe the MSI with the signature the cabs use (only relevant for MSIs which use external cabs, I think?) 2) Use the CustomAfterWixTargets property to specify a .targets file which contains the SignCabs and SignMsi targets 3) Add the SignCabs and SignMsi targets into your .wixproj (probably by adding an Import reference in your .wixproj to a .targets file) Does that seem right? Also, I did notice something in the help source: !-- TODO: mention the SignContainers target -- I haven't used external containers yet so this one is new to me. However, if I was to update the documentation I should probably include this as well. Thanks On 3 December 2013 04:47, Blair Murri os...@live.com wrote: At one time at MSFT (don't know if it is still the case) the machine that did codesigning for (most? all?) teams worldwide was solely located in (IIRC) Puerto Rico, and the files had to be securely electronically transported there, signed, and securely transported back, by a system owned by the group managing production signing (despite most build servers being in Redmond, Washington). Direct access to the signtool tool wasn't of any use in that case. At my current client, there is no official signing in any build leg that developers have direct access to. You tell them where your files are and they sign them. They sign everything before the packaging step of the build, but they have to script signing things that are contained by other things built during packaging, like external cabs any everything we stick into a bundle. Seems like everyone does it differently. Maybe we should take a poll to see if there is any one majority way that we could optimize for, but even inside of MSFT it had to be done differently for production signing and internal only-test signing. -Blair Date: Mon, 2 Dec 2013 22:08:16 + From: john.ludlow...@gmail.com To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] Signing bundles - changes needed to each bundle wixproj Fair enough. I guess we have it set up quite simply - a cert in a folder on the file server with restricted access. This is imported into the certificate store on the build machine by the build and selected by sha1 hash when calling signtool. We also timestamp. Therefore simply providing a path to signtool, the sha1 and the timestamping url via properties would work for us - that seems like a sensible default which could be overridden Thanks On 2 Dec 2013 18:24, Rob Mensching r...@robmensching.com wrote: My experience is that you really want your private key under lock and key. I heard the room with the private key at MSFT had a hand print reader. Even the WiX toolset submits our binaries off to a signing service to get signed. Never saw two organizations implement signing the same way. sigh/ -Original Message- From: John Ludlow [mailto:john.ludlow...@gmail.com] Sent: Monday, December 2, 2013 10:09 AM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] Signing bundles - changes needed to each bundle wixproj I suppose that's a good point, Rob - there's lots of ways to sign stuff. We tend to go to the signtool
Re: [WiX-users] wixtoolset.org popups
I'm not seeing any adverts. On Chrome I do have AdBlockerPlus, but it didn't report a blocked popup, and when I disabled it and refreshed I didn't see anything. Of course, it might be that you're hitting a different server than I am. On 3 December 2013 13:44, Christopher Painter chr...@iswix.com wrote: Is anyone else getting popup advertisements on wixtoolset.org? Advertisements from infinityads are what I'm seeing. -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349351iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349351iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
[WiX-users] Signing bundles - changes needed to each bundle wixproj
Hi, We're writing an installer using a bundle to chain two MSIs together. The bundle should be signed (we generally sign installers and EXEs and DLLs). Currently, we're using WiX 3.6 (we currently use Visual Studio 2008, and 3.7 didn't support that version of Visual Studio). We've discovered the 0x80004005 error described here: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Wix-3-7-Burn-error-0x80004005-Failed-to-extract-all-files-from-container-td7587152.html However, the fix for this seems to be to tweak the project files. This is not a preferred solution for us, as over the next year we will be creating a significant number of these as we adopt this technology for some of our existing installers. Since any tweaks to the projects are hidden (they require right clicking the project, choosing Edit... and effectively unloading the project from the solution). We'd have to remember to do that each time we create a bundle, and I'd rather not have that point of failure. I'm planning on using insignia.exe to extract engine.exe, sign it and then import it. However, it's been suggested this is also less than ideal (though it's better than having to remember to tweak a project file). I was wondering whether this is improved in later versions of WiX. I imagine it would be pretty simple for WiX to include this functionality in the default .wixproj project template, meaning we don't have to remember to do it ourselves. If this is the case, would this also support timestamping? Or are there any other inventive solutions for solving this issue? Thanks John -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349351iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Signing bundles - changes needed to each bundle wixproj
Hi Rob, How would this be invoked from the build? Your message prompted some digging, and I found CustomAfterWixTargets. Would you recommend setting this to the path to my own msbuild .targets file, and providing the SignXXX targets in there? I tried this and it seemed to work. If this is best practice, it would be worth updating the documentation to this effect. On 2 December 2013 14:52, Rob Mensching r...@robmensching.com wrote: Generally, I've seen people use the instructions to check the WiX toolset into their build process and provide a standard .props/.targets file for encapsulating all the custom logic for their build. -Original Message- From: John Ludlow [mailto:john.ludlow...@gmail.com] Sent: Monday, December 2, 2013 4:23 AM To: General discussion for Windows Installer XML toolset. Subject: [WiX-users] Signing bundles - changes needed to each bundle wixproj Hi, We're writing an installer using a bundle to chain two MSIs together. The bundle should be signed (we generally sign installers and EXEs and DLLs). Currently, we're using WiX 3.6 (we currently use Visual Studio 2008, and 3.7 didn't support that version of Visual Studio). We've discovered the 0x80004005 error described here: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Wix-3-7-Burn-error-0x80004005-Failed-to-extract-all-files-from-container-td7587152.html However, the fix for this seems to be to tweak the project files. This is not a preferred solution for us, as over the next year we will be creating a significant number of these as we adopt this technology for some of our existing installers. Since any tweaks to the projects are hidden (they require right clicking the project, choosing Edit... and effectively unloading the project from the solution). We'd have to remember to do that each time we create a bundle, and I'd rather not have that point of failure. I'm planning on using insignia.exe to extract engine.exe, sign it and then import it. However, it's been suggested this is also less than ideal (though it's better than having to remember to tweak a project file). I was wondering whether this is improved in later versions of WiX. I imagine it would be pretty simple for WiX to include this functionality in the default .wixproj project template, meaning we don't have to remember to do it ourselves. If this is the case, would this also support timestamping? Or are there any other inventive solutions for solving this issue? Thanks John -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349351iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349351iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349351iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Signing bundles - changes needed to each bundle wixproj
I see - that was the impression I got from the documentation, but I tend to prefer to stay out of those because any changes to the .wixprojs are relatively hidden, and we'd have to do the change for each bundle .wixproj (and probably each MSI .wixproj). Given the hidden nature, it's easy to forget (and more than a little cumbersome to implement each change). We could partially solve this using tools to mandate that this change was done before checkin, but we'd have to write a check for that tool. It's not difficult, but if we don't need to do it then we'd rather not. Similarly, we could write tools to auto-fix this - again, not difficult, but if we don't need to do it then we'd rather not. Ideally, however, the wix targets that come out of the box would have this already. I was wondering whether there's a reason why editing the .wixproj is preferred over CustomAfterWixTargets. If Visual Studio did a better job of exposing the underlying msbuild code then I'd just tweak the .msbuild file, but given how cumbersome it is, I'd rather avoid this if I can help it. On 2 December 2013 16:52, Rob Mensching r...@robmensching.com wrote: You could do that. I tend to add an explicit .props/.targets file to the .wixprojs myself but you have options with MSBuild. Documentation improvements are always appreciated. -Original Message- From: John Ludlow [mailto:john.ludlow...@gmail.com] Sent: Monday, December 2, 2013 8:07 AM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] Signing bundles - changes needed to each bundle wixproj Hi Rob, How would this be invoked from the build? Your message prompted some digging, and I found CustomAfterWixTargets. Would you recommend setting this to the path to my own msbuild .targets file, and providing the SignXXX targets in there? I tried this and it seemed to work. If this is best practice, it would be worth updating the documentation to this effect. On 2 December 2013 14:52, Rob Mensching r...@robmensching.com wrote: Generally, I've seen people use the instructions to check the WiX toolset into their build process and provide a standard .props/.targets file for encapsulating all the custom logic for their build. -Original Message- From: John Ludlow [mailto:john.ludlow...@gmail.com] Sent: Monday, December 2, 2013 4:23 AM To: General discussion for Windows Installer XML toolset. Subject: [WiX-users] Signing bundles - changes needed to each bundle wixproj Hi, We're writing an installer using a bundle to chain two MSIs together. The bundle should be signed (we generally sign installers and EXEs and DLLs). Currently, we're using WiX 3.6 (we currently use Visual Studio 2008, and 3.7 didn't support that version of Visual Studio). We've discovered the 0x80004005 error described here: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Wix-3-7- Burn-error-0x80004005-Failed-to-extract-all-files-from-container-td758 7152.html However, the fix for this seems to be to tweak the project files. This is not a preferred solution for us, as over the next year we will be creating a significant number of these as we adopt this technology for some of our existing installers. Since any tweaks to the projects are hidden (they require right clicking the project, choosing Edit... and effectively unloading the project from the solution). We'd have to remember to do that each time we create a bundle, and I'd rather not have that point of failure. I'm planning on using insignia.exe to extract engine.exe, sign it and then import it. However, it's been suggested this is also less than ideal (though it's better than having to remember to tweak a project file). I was wondering whether this is improved in later versions of WiX. I imagine it would be pretty simple for WiX to include this functionality in the default .wixproj project template, meaning we don't have to remember to do it ourselves. If this is the case, would this also support timestamping? Or are there any other inventive solutions for solving this issue? Thanks John -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349351iu=/4140/ostg.c lktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have
Re: [WiX-users] Signing bundles - changes needed to each bundle wixproj
Thanks for that, Blair. We've discussed changing the .wixprojs, and there is some appeal for that within the team. However, due to my preference to stay out of the .wixprojs as much as I can, I think I'll push for the CustomAfterWixTargets property method. Thanks Blair and Rob John On 2 December 2013 17:52, Blair Murri os...@live.com wrote: I don’t believe there’s a preference to one over the other. Each has its own costs and risks. Whichever works better in your environment. MSBuild is flexible in that regard. (What I do with my clients tends to vary based on the client’s needs and customs). -Blair From: John Ludlow Sent: Monday, December 02, 2013 9:49 AM To: General discussion for Windows Installer XML toolset. I see - that was the impression I got from the documentation, but I tend to prefer to stay out of those because any changes to the .wixprojs are relatively hidden, and we'd have to do the change for each bundle .wixproj (and probably each MSI .wixproj). Given the hidden nature, it's easy to forget (and more than a little cumbersome to implement each change). We could partially solve this using tools to mandate that this change was done before checkin, but we'd have to write a check for that tool. It's not difficult, but if we don't need to do it then we'd rather not. Similarly, we could write tools to auto-fix this - again, not difficult, but if we don't need to do it then we'd rather not. Ideally, however, the wix targets that come out of the box would have this already. I was wondering whether there's a reason why editing the .wixproj is preferred over CustomAfterWixTargets. If Visual Studio did a better job of exposing the underlying msbuild code then I'd just tweak the .msbuild file, but given how cumbersome it is, I'd rather avoid this if I can help it. On 2 December 2013 16:52, Rob Mensching r...@robmensching.com wrote: You could do that. I tend to add an explicit .props/.targets file to the .wixprojs myself but you have options with MSBuild. Documentation improvements are always appreciated. -Original Message- From: John Ludlow [mailto:john.ludlow...@gmail.com] Sent: Monday, December 2, 2013 8:07 AM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] Signing bundles - changes needed to each bundle wixproj Hi Rob, How would this be invoked from the build? Your message prompted some digging, and I found CustomAfterWixTargets. Would you recommend setting this to the path to my own msbuild .targets file, and providing the SignXXX targets in there? I tried this and it seemed to work. If this is best practice, it would be worth updating the documentation to this effect. On 2 December 2013 14:52, Rob Mensching r...@robmensching.com wrote: Generally, I've seen people use the instructions to check the WiX toolset into their build process and provide a standard .props/.targets file for encapsulating all the custom logic for their build. -Original Message- From: John Ludlow [mailto:john.ludlow...@gmail.com] Sent: Monday, December 2, 2013 4:23 AM To: General discussion for Windows Installer XML toolset. Subject: [WiX-users] Signing bundles - changes needed to each bundle wixproj Hi, We're writing an installer using a bundle to chain two MSIs together. The bundle should be signed (we generally sign installers and EXEs and DLLs). Currently, we're using WiX 3.6 (we currently use Visual Studio 2008, and 3.7 didn't support that version of Visual Studio). We've discovered the 0x80004005 error described here: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Wix-3-7- Burn-error-0x80004005-Failed-to-extract-all-files-from-container-td758 7152.html However, the fix for this seems to be to tweak the project files. This is not a preferred solution for us, as over the next year we will be creating a significant number of these as we adopt this technology for some of our existing installers. Since any tweaks to the projects are hidden (they require right clicking the project, choosing Edit... and effectively unloading the project from the solution). We'd have to remember to do that each time we create a bundle, and I'd rather not have that point of failure. I'm planning on using insignia.exe to extract engine.exe, sign it and then import it. However, it's been suggested this is also less than ideal (though it's better than having to remember to tweak a project file). I was wondering whether this is improved in later versions of WiX. I imagine it would be pretty simple for WiX to include this functionality in the default .wixproj project template, meaning we don't have to remember to do it ourselves. If this is the case, would this also support timestamping? Or are there any other inventive solutions for solving this issue
Re: [WiX-users] Signing bundles - changes needed to each bundle wixproj
I suppose that's a good point, Rob - there's lots of ways to sign stuff. We tend to go to the signtool method (actually a specific version of signtool for reasons I can't remember) and I kind of figured that would be the (ahem) generically preferred method of signing things that WiX cares about. Anyway, thanks for your help. On 2 December 2013 17:59, Rob Mensching r...@robmensching.com wrote: Ditto. And if you come up with a way to set these targets by default correctly for the multitude of ways for signing binaries, we'd love to discuss it on wix-devs. -Original Message- From: Blair Murri [mailto:os...@live.com] Sent: Monday, December 2, 2013 9:53 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Signing bundles - changes needed to each bundle wixproj I don’t believe there’s a preference to one over the other. Each has its own costs and risks. Whichever works better in your environment. MSBuild is flexible in that regard. (What I do with my clients tends to vary based on the client’s needs and customs). -Blair From: John Ludlow Sent: Monday, December 02, 2013 9:49 AM To: General discussion for Windows Installer XML toolset. I see - that was the impression I got from the documentation, but I tend to prefer to stay out of those because any changes to the .wixprojs are relatively hidden, and we'd have to do the change for each bundle .wixproj (and probably each MSI .wixproj). Given the hidden nature, it's easy to forget (and more than a little cumbersome to implement each change). We could partially solve this using tools to mandate that this change was done before checkin, but we'd have to write a check for that tool. It's not difficult, but if we don't need to do it then we'd rather not. Similarly, we could write tools to auto-fix this - again, not difficult, but if we don't need to do it then we'd rather not. Ideally, however, the wix targets that come out of the box would have this already. I was wondering whether there's a reason why editing the .wixproj is preferred over CustomAfterWixTargets. If Visual Studio did a better job of exposing the underlying msbuild code then I'd just tweak the .msbuild file, but given how cumbersome it is, I'd rather avoid this if I can help it. On 2 December 2013 16:52, Rob Mensching r...@robmensching.com wrote: You could do that. I tend to add an explicit .props/.targets file to the .wixprojs myself but you have options with MSBuild. Documentation improvements are always appreciated. -Original Message- From: John Ludlow [mailto:john.ludlow...@gmail.com] Sent: Monday, December 2, 2013 8:07 AM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] Signing bundles - changes needed to each bundle wixproj Hi Rob, How would this be invoked from the build? Your message prompted some digging, and I found CustomAfterWixTargets. Would you recommend setting this to the path to my own msbuild .targets file, and providing the SignXXX targets in there? I tried this and it seemed to work. If this is best practice, it would be worth updating the documentation to this effect. On 2 December 2013 14:52, Rob Mensching r...@robmensching.com wrote: Generally, I've seen people use the instructions to check the WiX toolset into their build process and provide a standard .props/.targets file for encapsulating all the custom logic for their build. -Original Message- From: John Ludlow [mailto:john.ludlow...@gmail.com] Sent: Monday, December 2, 2013 4:23 AM To: General discussion for Windows Installer XML toolset. Subject: [WiX-users] Signing bundles - changes needed to each bundle wixproj Hi, We're writing an installer using a bundle to chain two MSIs together. The bundle should be signed (we generally sign installers and EXEs and DLLs). Currently, we're using WiX 3.6 (we currently use Visual Studio 2008, and 3.7 didn't support that version of Visual Studio). We've discovered the 0x80004005 error described here: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Wix-3- 7- Burn-error-0x80004005-Failed-to-extract-all-files-from-container-td7 58 7152.html However, the fix for this seems to be to tweak the project files. This is not a preferred solution for us, as over the next year we will be creating a significant number of these as we adopt this technology for some of our existing installers. Since any tweaks to the projects are hidden (they require right clicking the project, choosing Edit... and effectively unloading the project from the solution). We'd have to remember to do that each time we create a bundle, and I'd rather not have that point of failure. I'm planning on using insignia.exe to extract engine.exe, sign it and then import it. However, it's been suggested
Re: [WiX-users] Signing bundles - changes needed to each bundle wixproj
Fair enough. I guess we have it set up quite simply - a cert in a folder on the file server with restricted access. This is imported into the certificate store on the build machine by the build and selected by sha1 hash when calling signtool. We also timestamp. Therefore simply providing a path to signtool, the sha1 and the timestamping url via properties would work for us - that seems like a sensible default which could be overridden Thanks On 2 Dec 2013 18:24, Rob Mensching r...@robmensching.com wrote: My experience is that you really want your private key under lock and key. I heard the room with the private key at MSFT had a hand print reader. Even the WiX toolset submits our binaries off to a signing service to get signed. Never saw two organizations implement signing the same way. sigh/ -Original Message- From: John Ludlow [mailto:john.ludlow...@gmail.com] Sent: Monday, December 2, 2013 10:09 AM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] Signing bundles - changes needed to each bundle wixproj I suppose that's a good point, Rob - there's lots of ways to sign stuff. We tend to go to the signtool method (actually a specific version of signtool for reasons I can't remember) and I kind of figured that would be the (ahem) generically preferred method of signing things that WiX cares about. Anyway, thanks for your help. On 2 December 2013 17:59, Rob Mensching r...@robmensching.com wrote: Ditto. And if you come up with a way to set these targets by default correctly for the multitude of ways for signing binaries, we'd love to discuss it on wix-devs. -Original Message- From: Blair Murri [mailto:os...@live.com] Sent: Monday, December 2, 2013 9:53 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Signing bundles - changes needed to each bundle wixproj I don't believe there's a preference to one over the other. Each has its own costs and risks. Whichever works better in your environment. MSBuild is flexible in that regard. (What I do with my clients tends to vary based on the client's needs and customs). -Blair From: John Ludlow Sent: Monday, December 02, 2013 9:49 AM To: General discussion for Windows Installer XML toolset. I see - that was the impression I got from the documentation, but I tend to prefer to stay out of those because any changes to the .wixprojs are relatively hidden, and we'd have to do the change for each bundle .wixproj (and probably each MSI .wixproj). Given the hidden nature, it's easy to forget (and more than a little cumbersome to implement each change). We could partially solve this using tools to mandate that this change was done before checkin, but we'd have to write a check for that tool. It's not difficult, but if we don't need to do it then we'd rather not. Similarly, we could write tools to auto-fix this - again, not difficult, but if we don't need to do it then we'd rather not. Ideally, however, the wix targets that come out of the box would have this already. I was wondering whether there's a reason why editing the .wixproj is preferred over CustomAfterWixTargets. If Visual Studio did a better job of exposing the underlying msbuild code then I'd just tweak the .msbuild file, but given how cumbersome it is, I'd rather avoid this if I can help it. On 2 December 2013 16:52, Rob Mensching r...@robmensching.com wrote: You could do that. I tend to add an explicit .props/.targets file to the .wixprojs myself but you have options with MSBuild. Documentation improvements are always appreciated. -Original Message- From: John Ludlow [mailto:john.ludlow...@gmail.com] Sent: Monday, December 2, 2013 8:07 AM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] Signing bundles - changes needed to each bundle wixproj Hi Rob, How would this be invoked from the build? Your message prompted some digging, and I found CustomAfterWixTargets. Would you recommend setting this to the path to my own msbuild .targets file, and providing the SignXXX targets in there? I tried this and it seemed to work. If this is best practice, it would be worth updating the documentation to this effect. On 2 December 2013 14:52, Rob Mensching r...@robmensching.com wrote: Generally, I've seen people use the instructions to check the WiX toolset into their build process and provide a standard .props/.targets file for encapsulating all the custom logic for their build. -Original Message- From: John Ludlow [mailto:john.ludlow...@gmail.com] Sent: Monday, December 2, 2013 4:23 AM To: General discussion for Windows Installer XML toolset. Subject: [WiX-users] Signing bundles - changes needed to each bundle wixproj Hi, We're
Re: [WiX-users] Microsoft Reciprocal License explaination
If you modify WiX itself, then I'd argue that it's actually in your best interest to contribute the changes back anyway, regardless of whether you distribute those binaries. That way, they can be included in future versions of WiX and you don't have to re-apply the changes every time you upgrade the toolset. The only reason I can see not to do this is because it depends on proprietary code, which either has no use outside your environment, or is considered part of your own product and can't be distributed. On 20 November 2013 04:55, Rob Mensching r...@robmensching.com wrote: Depends on which lawyers you ask but I'd still leave you with my last comment: Your stuff is yours but don't steal from the community. If you improve our stuff, give back. -Original Message- From: Nicolás Alvarez [mailto:nicolas.alva...@gmail.com] Sent: Wednesday, November 20, 2013 11:34 AM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] Microsoft Reciprocal License explaination But if I change something in the WiX toolset and don't distribute the modified WiX binaries (I only distribute msi packages generated with the modified WiX), I don't have to distribute the source code to my modifications, do I? -- Nicolás 2013/11/20 Rob Mensching r...@robmensching.com: If one does not claim the WiX code as part their own stuff (i.e. all the copyrights are left in place) and one does not change any code (i.e. WiX code is same as code published on WiX toolset site) then from my understanding (you'll need to get your own lawyer) they are still complying with MS-RL. Basically, when one changes something *in* the WiX toolset, those changes must be published. Ideally, those changes are provided to the community so everyone benefits from work done by volunteers around the world. Said another way, Your stuff is yours but don't steal from the community. If you improve our stuff, give back. -Original Message- From: Christopher Painter [mailto:chr...@iswix.com] Sent: Wednesday, November 20, 2013 11:10 AM To: General discussion about the WiX toolset.; General discussion about the WiX toolset. Subject: Re: [WiX-users] Microsoft Reciprocal License explaination The problem is the way they say normally not included. Got to love lawyers. FWIW, I get into grey areas with my tool IsWiX. Include very small pieces of WiX in my solution ( mainly the use of Microsoft.Deployment.WindowsInstaller, the inclusion of schema (XSD) files for validation and snippets of the help file displayed in the UI to educate the developer). I'm not actually making any changes to WiX though and I want to publish under MS-PL not MS-RL because if anyone ever wants to pick up this ball and run with it, I'd be honored. I can only assume that OuterCurve won't want to waste going after me... there isn't any money and I'm not doing anything malicious. From: Rob Mensching r...@robmensching.com Sent: Tuesday, November 19, 2013 9:01 PM To: General discussion about the WiX toolset. wix-users@lists.sourceforge.net Subject: Re: [WiX-users] Microsoft Reciprocal License explaination http://wixtoolset.org/about/license/ -Original Message- From: Nicolás Alvarez [mailto:nicolas.alva...@gmail.com] Sent: Wednesday, November 20, 2013 6:48 AM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] Microsoft Reciprocal License explaination 2013/11/19 Joe Dimagio joedim...@gmail.com: Hey everyone, I'm doing some research to see if WiX is right for my corporation to use. Reading the MS RL, it looks like if I distribute my product using WiX, I need to include my source files including the wxs, wxl, wxi, wixproj, as well as my own product's source code as well. Is this correct? I'm not a lawyer but this seems like an all encompassing license that seems pretty prohibitive for a company to use if I'm reading it correct. No, not at all. That would be like saying that using an open source compiler means you have to distribute your source code if you compiled your binaries with it, or that you have to distribute your code if you used an open source text editor to write it; none of that makes sense. The license only affects WiX, not what you generate with it. However, I would like some clarifications from the developers about code from WiX that gets embedded into the final msi, especially the standard custom actions. I think that code should be explicitly under a more liberal license... -- Nicolás -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile
Re: [WiX-users] Fwd: Re: Referring to fragments
That should have read: If you make this change, you can also remove the following line: RegistryValue Root='HKCU' Key='Software\[Manufacturer]\[ProductName]' Type='string' Value='' KeyPath='yes' / On 19 November 2013 08:34, John Ludlow john.ludlow...@gmail.com wrote: That's because of this: Directory Id='DesktopFolder' Name='PFiles' This will put files on the users desktop - are you sure that's what you want? (Hint: it's probably not) Change this to ProgramFilesFolder (or ProgramFiles64Folder). Remember how you were getting a similar error previously? If you make this change, you can also remove the following line: Alternatively, use a script to modify each component so it contains a registry entry. On 19 November 2013 07:50, Suvrajyoti Panda suvrajyo...@contata.co.inwrote: Hi John/All, I have used the below commands: heat dir D:\Project\ESI\Code\trunk\db -cg trunkdb -gg -sfrag -dr TORTDEMO -out trunkdb.wxs candle TortEngineDemo.wxs trunkdb.wxs light -b D:\Project\ESI\Code\trunk\db -out TrunkDBDemo.msi TortEngineDemo.wixobj trunkdb.wixobj This does create the TrunkDBDemo.msi and when i run it it also creates the Tort Demo folder on the desktop and the db directory in which i can find all the files that were there in the source directory. The required registry entry is also created. The change i have done is added the part *-b D:\Project\ESI\Code\trunk\db *to the Light command *. * But the Light does throw up some many errors such as : C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs(921) : error LGHT0204 : ICE38: Component cmp159DEBB341761ACFD08D530D4AB638B2 installs to user profile. It must use a registry key under HKCU as its KeyPath, not a file. In the trunkdb.wxs file i have the like below(files are attached) Component Id=cmp159DEBB341761ACFD08D530D4AB638B2 Guid={AA11F234-AF77-4F2C-B4A2-355A25C71234} File Id=fil13F4C3BF2526AB7CCACA852D90DAA880 KeyPath=yes Source=SourceDir\alarm.db/ Do i need to change this file to registry key when generating this file from heat? Please suggest as to what the error could be for? Regards, Suvra Jyoti On 18-11-2013 21:31, John Ludlow wrote: Yeah I didn't explain that path thing very well. I was referring to this path: C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs This probably shouldn't be here. Best to keep this out of the WiX install directory. If this is a file which is generated for every build, then either use an intermediates folder in your build tree, or put it into the %tmp% directory. This is probably because you're not specifying a full path for the -out parameter. I'm not entirely clear on why you're launching an installer from CruiseControl - that seems a little weird to me. It sounds like you're trying to use MSI to achieve a continuous deployment scenario, and it's not really designed for that - is that what you're trying to do? I've not actually used the heat -var argument, so the advice I can give you will be limited. However, I believe that if you add -var:TrunkDbRootDir to your heat command, it will generate something like this: File Source=$(var.TrunkDbRootDir)\file.ext/ You will have to define that variable elsewhere, and it's up to you to make sure that it points to the correct place so that the path is correct when the variable is resolved. Someone with more experience of heat.exe might be able to help you further. Hope that helps On 18 November 2013 14:36, Suvrajyoti Panda suvrajyo...@contata.co.inwrote: Hi John, When I are created the trunkdb.wxs file i had ditected it to D:\Project\ESI\Code\trunk\db. These files exist now also and are part of the SVN source control. I do not get what you mean by C:\Program Files (x86) and I'm not sure how it came up with that path . I am just executing Light from the path C:\Program Files (x86)\WiX Toolset v3.7\bin where in my two source files are also placed(tortenginedemo.wxs and trunkdb.wxs). By File/@Source i guess you mean that as of now in the fragment the path is only SourceDIr. Let me know how we can do that. I need this to be dynamic in the sense that a batch file would execute that would create the directory *db** (*D:\Project\ESI\Code\trunk\db *). * The WIX installer that needs to be created should install the “db” directories that is created by the batch file. Basically i need to execute the installer when the scroipts for cruise control are fired. The firing of the cruisecontrol script fires the installer as well through a batch file. This is the approach that has been decided as of now. In case you other pointers do let me know specially the You will need to either specify the -var argument to heat.exe with a variable name (and tweak the value so that it matches correctly) or write some build code to tweak the contents of this file. if this helps. Moreover it is not that the error is being shown foll all the files in the db
Re: [WiX-users] Fwd: Re: Referring to fragments
That's because of this: Directory Id='DesktopFolder' Name='PFiles' This will put files on the users desktop - are you sure that's what you want? (Hint: it's probably not) Change this to ProgramFilesFolder (or ProgramFiles64Folder). Remember how you were getting a similar error previously? If you make this change, you can also remove the following line: Alternatively, use a script to modify each component so it contains a registry entry. On 19 November 2013 07:50, Suvrajyoti Panda suvrajyo...@contata.co.inwrote: Hi John/All, I have used the below commands: heat dir D:\Project\ESI\Code\trunk\db -cg trunkdb -gg -sfrag -dr TORTDEMO -out trunkdb.wxs candle TortEngineDemo.wxs trunkdb.wxs light -b D:\Project\ESI\Code\trunk\db -out TrunkDBDemo.msi TortEngineDemo.wixobj trunkdb.wixobj This does create the TrunkDBDemo.msi and when i run it it also creates the Tort Demo folder on the desktop and the db directory in which i can find all the files that were there in the source directory. The required registry entry is also created. The change i have done is added the part *-b D:\Project\ESI\Code\trunk\db *to the Light command *. * But the Light does throw up some many errors such as : C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs(921) : error LGHT0204 : ICE38: Component cmp159DEBB341761ACFD08D530D4AB638B2 installs to user profile. It must use a registry key under HKCU as its KeyPath, not a file. In the trunkdb.wxs file i have the like below(files are attached) Component Id=cmp159DEBB341761ACFD08D530D4AB638B2 Guid={AA11F234-AF77-4F2C-B4A2-355A25C71234} File Id=fil13F4C3BF2526AB7CCACA852D90DAA880 KeyPath=yes Source=SourceDir\alarm.db/ Do i need to change this file to registry key when generating this file from heat? Please suggest as to what the error could be for? Regards, Suvra Jyoti On 18-11-2013 21:31, John Ludlow wrote: Yeah I didn't explain that path thing very well. I was referring to this path: C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs This probably shouldn't be here. Best to keep this out of the WiX install directory. If this is a file which is generated for every build, then either use an intermediates folder in your build tree, or put it into the %tmp% directory. This is probably because you're not specifying a full path for the -out parameter. I'm not entirely clear on why you're launching an installer from CruiseControl - that seems a little weird to me. It sounds like you're trying to use MSI to achieve a continuous deployment scenario, and it's not really designed for that - is that what you're trying to do? I've not actually used the heat -var argument, so the advice I can give you will be limited. However, I believe that if you add -var:TrunkDbRootDir to your heat command, it will generate something like this: File Source=$(var.TrunkDbRootDir)\file.ext/ You will have to define that variable elsewhere, and it's up to you to make sure that it points to the correct place so that the path is correct when the variable is resolved. Someone with more experience of heat.exe might be able to help you further. Hope that helps On 18 November 2013 14:36, Suvrajyoti Panda suvrajyo...@contata.co.inwrote: Hi John, When I are created the trunkdb.wxs file i had ditected it to D:\Project\ESI\Code\trunk\db. These files exist now also and are part of the SVN source control. I do not get what you mean by C:\Program Files (x86) and I'm not sure how it came up with that path . I am just executing Light from the path C:\Program Files (x86)\WiX Toolset v3.7\bin where in my two source files are also placed(tortenginedemo.wxs and trunkdb.wxs). By File/@Source i guess you mean that as of now in the fragment the path is only SourceDIr. Let me know how we can do that. I need this to be dynamic in the sense that a batch file would execute that would create the directory *db** (*D:\Project\ESI\Code\trunk\db*). *The WIX installer that needs to be created should install the “db” directories that is created by the batch file. Basically i need to execute the installer when the scroipts for cruise control are fired. The firing of the cruisecontrol script fires the installer as well through a batch file. This is the approach that has been decided as of now. In case you other pointers do let me know specially the You will need to either specify the -var argument to heat.exe with a variable name (and tweak the value so that it matches correctly) or write some build code to tweak the contents of this file. if this helps. Moreover it is not that the error is being shown foll all the files in the db directory . It is showing for about 150 files in the db directory. There are a total of 379 files in the same. Regards, SuvraJyoti On 18-11-2013 19:00, John Ludlow wrote: Do those files exist at compilation time? They are C:\Program Files (x86) paths, and your code doesn't
Re: [WiX-users] Fwd: Re: Referring to fragments
In theory, just removing this line should do it: Directory Id='DesktopFolder' Name='PFiles' I haven't tried that though, so I'm not 100% sure. If not, you can also try a custom action which sets the directory. Generally, you should think twice before dropping files directly under c:\ - most people like to keep that as clean as possible. On 19 November 2013 09:27, Suvrajyoti Panda suvrajyo...@contata.co.inwrote: Hi John, Thanks for the help...Just followed the steps...worked like a charm. The folder got installed into the program files folder and there were no errors thrown by Light. But I want the db directory to be created into a folder in say c:\[FolderName](c:\[FolderName]\Tort Demo). I have tried with like as mentioned earlier DesktopFolder, LocalAppdatafolder etc just to see if everything goes fine but i was getting the error mentioned in below mail. For those errors i landed on to http://robmensching.com/blog/posts/2007/4/27/how-to-create-an-uninstall-shortcut-and-pass-all-the where it is said that the registry key is created to make ICE18http://msdn2.microsoft.com/en-us/library/aa368942.aspx, ICE38 http://msdn2.microsoft.com/en-us/library/aa368961.aspx and ICE48http://msdn2.microsoft.com/en-us/library/aa368977.aspxhappy. So can i ignore those errors and move ahead? How can i get my directory created to c:\[FolderName]\ ? Regards, SuvraJyoti On 19-11-2013 14:05, John Ludlow wrote: That should have read: If you make this change, you can also remove the following line: RegistryValue Root='HKCU' Key='Software\[Manufacturer]\[ProductName]' Type='string' Value='' KeyPath='yes' / On 19 November 2013 08:34, John Ludlow john.ludlow...@gmail.com wrote: That's because of this: Directory Id='DesktopFolder' Name='PFiles' This will put files on the users desktop - are you sure that's what you want? (Hint: it's probably not) Change this to ProgramFilesFolder (or ProgramFiles64Folder). Remember how you were getting a similar error previously? If you make this change, you can also remove the following line: Alternatively, use a script to modify each component so it contains a registry entry. On 19 November 2013 07:50, Suvrajyoti Panda suvrajyo...@contata.co.inwrote: Hi John/All, I have used the below commands: heat dir D:\Project\ESI\Code\trunk\db -cg trunkdb -gg -sfrag -dr TORTDEMO -out trunkdb.wxs candle TortEngineDemo.wxs trunkdb.wxs light -b D:\Project\ESI\Code\trunk\db -out TrunkDBDemo.msi TortEngineDemo.wixobj trunkdb.wixobj This does create the TrunkDBDemo.msi and when i run it it also creates the Tort Demo folder on the desktop and the db directory in which i can find all the files that were there in the source directory. The required registry entry is also created. The change i have done is added the part *-b D:\Project\ESI\Code\trunk\db *to the Light command *. * But the Light does throw up some many errors such as : C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs(921) : error LGHT0204 : ICE38: Component cmp159DEBB341761ACFD08D530D4AB638B2 installs to user profile. It must use a registry key under HKCU as its KeyPath, not a file. In the trunkdb.wxs file i have the like below(files are attached) Component Id=cmp159DEBB341761ACFD08D530D4AB638B2 Guid={AA11F234-AF77-4F2C-B4A2-355A25C71234} File Id=fil13F4C3BF2526AB7CCACA852D90DAA880 KeyPath=yes Source=SourceDir\alarm.db/ Do i need to change this file to registry key when generating this file from heat? Please suggest as to what the error could be for? Regards, Suvra Jyoti On 18-11-2013 21:31, John Ludlow wrote: Yeah I didn't explain that path thing very well. I was referring to this path: C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs This probably shouldn't be here. Best to keep this out of the WiX install directory. If this is a file which is generated for every build, then either use an intermediates folder in your build tree, or put it into the %tmp% directory. This is probably because you're not specifying a full path for the -out parameter. I'm not entirely clear on why you're launching an installer from CruiseControl - that seems a little weird to me. It sounds like you're trying to use MSI to achieve a continuous deployment scenario, and it's not really designed for that - is that what you're trying to do? I've not actually used the heat -var argument, so the advice I can give you will be limited. However, I believe that if you add -var:TrunkDbRootDir to your heat command, it will generate something like this: File Source=$(var.TrunkDbRootDir)\file.ext/ You will have to define that variable elsewhere, and it's up to you to make sure that it points to the correct place so that the path is correct when the variable is resolved. Someone with more experience of heat.exe might be able to help you further. Hope that helps On 18 November 2013 14:36, Suvrajyoti
Re: [WiX-users] Fwd: Re: Referring to fragments
That looks like expected behaviour to me. What's happening here is that the installer's created that directory structure and deployed a bunch of resources. During uninstall, it determines that those are the files it deployed and removes them. you can specify Component/@Permanent=yes if you want to change that. Once it's removed all the files, it finds that the directory is empty and removes that as well. Do you have a copy of this book? It's a great reference for understanding WiX concepts. http://www.packtpub.com/windows-installer-xml-3-6-developers-guide/book On 19 November 2013 10:22, Suvrajyoti Panda suvrajyo...@contata.co.inwrote: Ok, I have made the following changes to the TortEngineDemo.wxs(also they are attached): Directory Id='TARGETDIR' Name='SourceDir' Directory Id='MyFolder' Name='EnergySolutionsInternational' FileSource='D:\' Directory Id='TORTDEMO' Name='Tort Demo' Component Id=TORTDEMO Guid=9D5FEECE-74FE-45A2-BD34-41562EC8ED16 RemoveFolder Id='TORTDEMO' On='uninstall' / !--RegistryValue Root='HKCU' Key='Software\[Manufacturer]\[ProductName]' Type='string' Value='' KeyPath='yes' /-- /Component !--Component Id=test Guid=A90AAE4F-CEB3-4958-A97D-458B25800D23 File Id=test KeyPath=no Source=C:\Users\suvrajyotip\Desktop\test.txt / RegistryValue Key=Software\[Manufacturer]\[ProductName]_Dummy Root=HKCU KeyPath='yes' Type='string' Value=''/ /Component-- /Directory /Directory When i execute Candle and Light, the msi gets created and when i run the msi, the directory structure gets created in D:\EnergySolutionsInternational\Tort demo On uninstalling the EnergySolutionsInternational directory also gets removed. Do you think that should be the behaviour.? On 19-11-2013 15:44, John Ludlow wrote: In theory, just removing this line should do it: Directory Id='DesktopFolder' Name='PFiles' I haven't tried that though, so I'm not 100% sure. If not, you can also try a custom action which sets the directory. Generally, you should think twice before dropping files directly under c:\ - most people like to keep that as clean as possible. On 19 November 2013 09:27, Suvrajyoti Panda suvrajyo...@contata.co.inwrote: Hi John, Thanks for the help...Just followed the steps...worked like a charm. The folder got installed into the program files folder and there were no errors thrown by Light. But I want the db directory to be created into a folder in say c:\[FolderName](c:\[FolderName]\Tort Demo). I have tried with like as mentioned earlier DesktopFolder, LocalAppdatafolder etc just to see if everything goes fine but i was getting the error mentioned in below mail. For those errors i landed on to http://robmensching.com/blog/posts/2007/4/27/how-to-create-an-uninstall-shortcut-and-pass-all-the where it is said that the registry key is created to make ICE18http://msdn2.microsoft.com/en-us/library/aa368942.aspx, ICE38 http://msdn2.microsoft.com/en-us/library/aa368961.aspx and ICE48http://msdn2.microsoft.com/en-us/library/aa368977.aspxhappy. So can i ignore those errors and move ahead? How can i get my directory created to c:\[FolderName]\ ? Regards, SuvraJyoti On 19-11-2013 14:05, John Ludlow wrote: That should have read: If you make this change, you can also remove the following line: RegistryValue Root='HKCU' Key='Software\[Manufacturer]\[ProductName]' Type='string' Value='' KeyPath='yes' / On 19 November 2013 08:34, John Ludlow john.ludlow...@gmail.com wrote: That's because of this: Directory Id='DesktopFolder' Name='PFiles' This will put files on the users desktop - are you sure that's what you want? (Hint: it's probably not) Change this to ProgramFilesFolder (or ProgramFiles64Folder). Remember how you were getting a similar error previously? If you make this change, you can also remove the following line: Alternatively, use a script to modify each component so it contains a registry entry. On 19 November 2013 07:50, Suvrajyoti Panda suvrajyo...@contata.co.inwrote: Hi John/All, I have used the below commands: heat dir D:\Project\ESI\Code\trunk\db -cg trunkdb -gg -sfrag -dr TORTDEMO -out trunkdb.wxs candle TortEngineDemo.wxs trunkdb.wxs light -b D:\Project\ESI\Code\trunk\db -out TrunkDBDemo.msi TortEngineDemo.wixobj trunkdb.wixobj This does create the TrunkDBDemo.msi and when i run it it also creates the Tort Demo folder on the desktop and the db directory in which i can find all the files that were there in the source directory. The required registry entry is also created. The change i have done is added the part *-b D:\Project\ESI\Code\trunk\db *to the Light command *. * But the Light does throw up some many errors such as : C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs(921) : error LGHT0204 : ICE38: Component
Re: [WiX-users] Referring to fragments
the fragment the right way. Please suggest how i need to refer to the fragment from my installer. I am really stuck and any help would be much appreciable. Let me know if you are on Skype, that would be helpful. Regards, SuvraJyoti Regards, SuvraJyoti On 15-11-2013 19:19, John Ludlow wrote: I think you're getting confused between two separate issues. If you're getting the ICE error, then that would stop the build from successfully completing. You may be using an out of date version of your installer. Because of that, I would suggest that you do the following 1. Resolve the ICE issue. You suppress it so that it doesn't get run, but the better thing to do is usually to solve the error. In this case, that means add a registry entry to the component and mark it as KeyPath=yes. 2. Determine whether your directory structure is getting added to your install. You can do this in a number of ways - using Orca.exe or performing an admin install are two of them. Based on your question, I can't see a reference to anything in the Fragment which contains the harvested directory structure, so I suspect that you need to add a reference to something in there. For example: Feature Id='Complete' Level='1' ComponentRef Id='TORTDEMO' / ComponentRef Id='cmpCB46AAB9A4F3EB62F8247A194B4BBB4B' / /Feature Once you've dealt with those issues, you may see WiX complain about other issues - for starters, your root DirectoryRef entry in that structure is missing an ID, so the structure won't have a valid parent which means MSI won't know where to put it. My advice would be to concentrate on getting a successful compilation, then work from there. Keep compiling regularly as you work. If you see a compilation failure, stop and deal with it. This makes it much easier to deal with issues as you discover them. Hope that helps On 15 November 2013 11:13, Suvrajyoti Panda suvrajyo...@contata.co.in suvrajyo...@contata.co.inwrote: Hi, I have a fragment that i have created through Heat. Basically i want to create a db directory that has db files inside it through the installer. It has the structure as below: ?xml version=1.0 encoding=utf-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; http://schemas.microsoft.com/wix/2006/wi Fragment DirectoryRef Id= Directory Id= Name=db Component Id=cmpCB46AAB9A4F3EB62F8247A194B4BBB4B Guid={DE25A51B-AD43-4C74-8F84-9336AAC18BA0} File Id=fil8B6B2F5720D83AD50A3898087E4DADF1 KeyPath=yes Source=SourceDir\alarm.db / /Component .. many components follow here . . . /Directory /DirectoryRef /Fragment /Wix My main WiX installer file is as below: ?xml version='1.0' encoding='windows-1252'? Wix xmlns='http://schemas.microsoft.com/wix/2006/wi' Product Name='Tort Demo 1.0' Id='0A6A060C-20A5-4716-994D-BC728A904F27' UpgradeCode='3F665FE5-D9A9-4C9E-B260-7D54970C99F3' Language='1033' Codepage='1252' Version='1.0.0' Manufacturer='Acme Ltd.' Package Id='*' Keywords='Installer' Description=Tort 1.0 Installer Comments='Tort Ltd.' Manufacturer='ESI Ltd.' InstallerVersion='300' Languages='1033' Compressed='yes' SummaryCodepage='1252' / Media Id='1' Cabinet='Tort.cab' EmbedCab='yes' DiskPrompt=CD-ROM #1 / Property Id='DiskPrompt' Value=Tort Demo Installation [1] / Directory Id='TARGETDIR' Name='SourceDir' Directory Id='PersonalFolder' Name='PFiles' Directory Id='TORTDEMO' Name='Tort Demo' Component Id=TORTDEMO Guid=8D286AB1-8C00-4A88-A7EB-C83BB92C480A RemoveFolder Id='TORTDEMO' On='uninstall' / /Component /Directory /Directory /Directory Feature Id='Complete' Level='1' ComponentRef Id='TORTDEMO' / /Feature /Product * ** Fragment** **DirectoryRef Id=TORTDEMO** **/DirectoryRef** ** /Fragment* /Wix I have tried to reference as given in the bold, but the directory structure does not get created when i run the .msi installer an i am getting the error C:\Program Files (x86)\WiX Toolset v3.7\bin\TortEngineDemo.wxs(15) : error LGHT0 204 : ICE38: Component TORTDEMO installs to user profile. It must use a registry key under HKCU as its KeyPath, not a file. Please help.. Regards, Suvra Jyoti On 15-11-2013 16:28, uholeschak wrote: I have two burn bundles (with different UpgradeCodes) that contain the same MsiPackage, but with different versions (different ProductCode). When I install the first burn bundle all is working fine, but when installing the second bundle nothing is happening (the MsiPackage is not installed). Is there a way to force burn to update an existing MsiPackage? -- View
Re: [WiX-users] Fwd: Re: Referring to fragments
Do those files exist at compilation time? They are C:\Program Files (x86) paths, and your code doesn't specify a full path in File/@Source. I'm not sure how it came up with that path, but it's probably wrong, since you are likely building your application binaries in a build area. You will need to either specify the -var argument to heat.exe with a variable name (and tweak the value so that it matches correctly) or write some build code to tweak the contents of this file. Heat.exe can, with the correct arguments, give you some generated code you can just plug into your project and go. Probably. In theory. If the planets are all in the correct alignments and you've made the right sacrifices. In practice, you should consider whether this kind of dynamic code generation is really what you need. Do the contents of that directory change without warning or beyond your team's ability to keep up with the changes? If so, then this kind of code generation is potentially a way around the issue, but ideally you should reconsider the application design. However, if this is more about generating code so you don't have to crank it by hand, then I'd recommend taking the generated code and adding the missing or incorrect attributes (possibly with PowerShell) and then take that code as source. Further updates to this code can be done by hand. Hope that helps On 18 November 2013 11:18, Suvrajyoti Panda suvrajyo...@contata.co.inwrote: Hi John, Any updates on the below issue. I am still stuck there. Regards, Suvra Jyoti Original Message Subject: Fwd: Re: [WiX-users] Referring to fragments Date: Mon, 18 Nov 2013 15:06:38 +0530 From: Suvrajyoti Panda suvrajyo...@contata.co.insuvrajyo...@contata.co.in To: John Ludlow john.ludlow...@gmail.com john.ludlow...@gmail.com Attaching the source files once again. Original Message Subject: Re: [WiX-users] Referring to fragments Date: Mon, 18 Nov 2013 15:04:31 +0530 From: Suvrajyoti Panda suvrajyo...@contata.co.in suvrajyo...@contata.co.in To: John Ludlow john.ludlow...@gmail.com john.ludlow...@gmail.com CC: General discussion about the WiX toolset. wix-users@lists.sourceforge.netwix-users@lists.sourceforge.net Hi John, I did as you suggested. I was getting the error C:\Program Files (x86)\WiX Toolset v3.7\bin\TortEngineDemo.wxs(24) : error LGHT0 094 : Unresolved reference to symbol 'Component:TORTDEMO' in section 'Product:{5 A1581BE-27C3-46A1-8699-4F1D642C97E0}'. So i changed the name to TORTDEMO instead of cmpTrunkDB earlier as below: Directory Id='TARGETDIR' Name='SourceDir' Directory Id='DesktopFolder' Name='PFiles' Directory Id='TORTDEMO' Name='Tort Demo' Component Id=*TORTDEMO* Guid=9D5FEECE-74FE-45A2-BD34-41562EC8ED16 RemoveFolder Id='TORTDEMO' On='uninstall' / RegistryValue Root='HKCU' Key='Software\[Manufacturer]\[ProductName]' Type='string' Value='' KeyPath='yes' / /Component /Directory /Directory /Directory Now i am getting the below error. C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs(751) : error LGHT0103 : The system cannot find the file 'SourceDir\tortoptions.v2.db'. C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs(754) : error LGHT0103 : The system cannot find the file 'SourceDir\tortoptions.v3.db'. C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs(757) : error LGHT0103 : The system cannot find the file 'SourceDir\tortoptions.v4.db'. C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs(760) : error LGHT0103 : The system cannot find the file 'SourceDir\tortoptions.v5.db'. C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs(763) : error LGHT0103 : The system cannot find the file 'SourceDir\tortosedata.db'. C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs(766) : error LGHT0103 : Please suggest on the same. On 18-11-2013 14:24, John Ludlow wrote: Ah, I missed that. You need to create a reference in your feature to each component, because now you have components which aren't assigned to any feature, which means they would never be installed. Please try this: 1. On your Heat.exe call, specify the -cg argument with a component name: heat dir D:\Project\ESI\Code\trunk\db -cg trunkdb -gg -sfrag -dr TORTDEMO -out trunkdb.wxs. This should add a component group with all the components in the output. The ID should be trunkdb, which you can reference in your Feature. 2. Change your Feature element like so: Feature Id='Complete' Level='1' ComponentRef Id='TORTDEMO' / ComponentGroupRef Id='trunkdb'/ /Feature This should reference the component group created in Step #1, drawing all those components into that feature. At first glance, the registry entry you've created looks fine. I'd probably specify a value, but that's just me. On 18 November 2013 08:32, Suvrajyoti Panda suvrajyo
Re: [WiX-users] Fwd: Re: Referring to fragments
Yeah I didn't explain that path thing very well. I was referring to this path: C:\Program Files (x86)\WiX Toolset v3.7\bin\trunkdb.wxs This probably shouldn't be here. Best to keep this out of the WiX install directory. If this is a file which is generated for every build, then either use an intermediates folder in your build tree, or put it into the %tmp% directory. This is probably because you're not specifying a full path for the -out parameter. I'm not entirely clear on why you're launching an installer from CruiseControl - that seems a little weird to me. It sounds like you're trying to use MSI to achieve a continuous deployment scenario, and it's not really designed for that - is that what you're trying to do? I've not actually used the heat -var argument, so the advice I can give you will be limited. However, I believe that if you add -var:TrunkDbRootDir to your heat command, it will generate something like this: File Source=$(var.TrunkDbRootDir)\file.ext/ You will have to define that variable elsewhere, and it's up to you to make sure that it points to the correct place so that the path is correct when the variable is resolved. Someone with more experience of heat.exe might be able to help you further. Hope that helps On 18 November 2013 14:36, Suvrajyoti Panda suvrajyo...@contata.co.inwrote: Hi John, When I are created the trunkdb.wxs file i had ditected it to D:\Project\ESI\Code\trunk\db. These files exist now also and are part of the SVN source control. I do not get what you mean by C:\Program Files (x86) and I'm not sure how it came up with that path . I am just executing Light from the path C:\Program Files (x86)\WiX Toolset v3.7\bin where in my two source files are also placed(tortenginedemo.wxs and trunkdb.wxs). By File/@Source i guess you mean that as of now in the fragment the path is only SourceDIr. Let me know how we can do that. I need this to be dynamic in the sense that a batch file would execute that would create the directory *db** (*D:\Project\ESI\Code\trunk\db*). *The WIX installer that needs to be created should install the “db” directories that is created by the batch file. Basically i need to execute the installer when the scroipts for cruise control are fired. The firing of the cruisecontrol script fires the installer as well through a batch file. This is the approach that has been decided as of now. In case you other pointers do let me know specially the You will need to either specify the -var argument to heat.exe with a variable name (and tweak the value so that it matches correctly) or write some build code to tweak the contents of this file. if this helps. Moreover it is not that the error is being shown foll all the files in the db directory . It is showing for about 150 files in the db directory. There are a total of 379 files in the same. Regards, SuvraJyoti On 18-11-2013 19:00, John Ludlow wrote: Do those files exist at compilation time? They are C:\Program Files (x86) paths, and your code doesn't specify a full path in File/@Source. I'm not sure how it came up with that path, but it's probably wrong, since you are likely building your application binaries in a build area. You will need to either specify the -var argument to heat.exe with a variable name (and tweak the value so that it matches correctly) or write some build code to tweak the contents of this file. Heat.exe can, with the correct arguments, give you some generated code you can just plug into your project and go. Probably. In theory. If the planets are all in the correct alignments and you've made the right sacrifices. In practice, you should consider whether this kind of dynamic code generation is really what you need. Do the contents of that directory change without warning or beyond your team's ability to keep up with the changes? If so, then this kind of code generation is potentially a way around the issue, but ideally you should reconsider the application design. However, if this is more about generating code so you don't have to crank it by hand, then I'd recommend taking the generated code and adding the missing or incorrect attributes (possibly with PowerShell) and then take that code as source. Further updates to this code can be done by hand. Hope that helps On 18 November 2013 11:18, Suvrajyoti Panda suvrajyo...@contata.co.inwrote: Hi John, Any updates on the below issue. I am still stuck there. Regards, Suvra Jyoti Original Message Subject: Fwd: Re: [WiX-users] Referring to fragments Date: Mon, 18 Nov 2013 15:06:38 +0530 From: Suvrajyoti Panda suvrajyo...@contata.co.in suvrajyo...@contata.co.in To: John Ludlow john.ludlow...@gmail.com john.ludlow...@gmail.com Attaching the source files once again. Original Message Subject: Re: [WiX-users] Referring to fragments Date: Mon, 18 Nov 2013 15:04:31 +0530 From: Suvrajyoti Panda suvrajyo
Re: [WiX-users] Referring to fragments
I think you're getting confused between two separate issues. If you're getting the ICE error, then that would stop the build from successfully completing. You may be using an out of date version of your installer. Because of that, I would suggest that you do the following 1. Resolve the ICE issue. You suppress it so that it doesn't get run, but the better thing to do is usually to solve the error. In this case, that means add a registry entry to the component and mark it as KeyPath=yes. 2. Determine whether your directory structure is getting added to your install. You can do this in a number of ways - using Orca.exe or performing an admin install are two of them. Based on your question, I can't see a reference to anything in the Fragment which contains the harvested directory structure, so I suspect that you need to add a reference to something in there. For example: Feature Id='Complete' Level='1' ComponentRef Id='TORTDEMO' / ComponentRef Id='cmpCB46AAB9A4F3EB62F8247A194B4BBB4B' / /Feature Once you've dealt with those issues, you may see WiX complain about other issues - for starters, your root DirectoryRef entry in that structure is missing an ID, so the structure won't have a valid parent which means MSI won't know where to put it. My advice would be to concentrate on getting a successful compilation, then work from there. Keep compiling regularly as you work. If you see a compilation failure, stop and deal with it. This makes it much easier to deal with issues as you discover them. Hope that helps On 15 November 2013 11:13, Suvrajyoti Panda suvrajyo...@contata.co.inwrote: Hi, I have a fragment that i have created through Heat. Basically i want to create a db directory that has db files inside it through the installer. It has the structure as below: ?xml version=1.0 encoding=utf-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; Fragment DirectoryRef Id= Directory Id= Name=db Component Id=cmpCB46AAB9A4F3EB62F8247A194B4BBB4B Guid={DE25A51B-AD43-4C74-8F84-9336AAC18BA0} File Id=fil8B6B2F5720D83AD50A3898087E4DADF1 KeyPath=yes Source=SourceDir\alarm.db / /Component .. many components follow here . . . /Directory /DirectoryRef /Fragment /Wix My main WiX installer file is as below: ?xml version='1.0' encoding='windows-1252'? Wix xmlns='http://schemas.microsoft.com/wix/2006/wi' Product Name='Tort Demo 1.0' Id='0A6A060C-20A5-4716-994D-BC728A904F27' UpgradeCode='3F665FE5-D9A9-4C9E-B260-7D54970C99F3' Language='1033' Codepage='1252' Version='1.0.0' Manufacturer='Acme Ltd.' Package Id='*' Keywords='Installer' Description=Tort 1.0 Installer Comments='Tort Ltd.' Manufacturer='ESI Ltd.' InstallerVersion='300' Languages='1033' Compressed='yes' SummaryCodepage='1252' / Media Id='1' Cabinet='Tort.cab' EmbedCab='yes' DiskPrompt=CD-ROM #1 / Property Id='DiskPrompt' Value=Tort Demo Installation [1] / Directory Id='TARGETDIR' Name='SourceDir' Directory Id='PersonalFolder' Name='PFiles' Directory Id='TORTDEMO' Name='Tort Demo' Component Id=TORTDEMO Guid=8D286AB1-8C00-4A88-A7EB-C83BB92C480A RemoveFolder Id='TORTDEMO' On='uninstall' / /Component /Directory /Directory /Directory Feature Id='Complete' Level='1' ComponentRef Id='TORTDEMO' / /Feature /Product * ** Fragment** **DirectoryRef Id=TORTDEMO** **/DirectoryRef** ** /Fragment* /Wix I have tried to reference as given in the bold, but the directory structure does not get created when i run the .msi installer an i am getting the error C:\Program Files (x86)\WiX Toolset v3.7\bin\TortEngineDemo.wxs(15) : error LGHT0 204 : ICE38: Component TORTDEMO installs to user profile. It must use a registry key under HKCU as its KeyPath, not a file. Please help.. Regards, Suvra Jyoti On 15-11-2013 16:28, uholeschak wrote: I have two burn bundles (with different UpgradeCodes) that contain the same MsiPackage, but with different versions (different ProductCode). When I install the first burn bundle all is working fine, but when installing the second bundle nothing is happening (the MsiPackage is not installed). Is there a way to force burn to update an existing MsiPackage? -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/MSI-packages-in-different-burn-bundles-not-updated-tp7590668.html Sent from the wix-users mailing list archive at Nabble.com. -- DreamFactory - Open Source REST JSON Services for HTML5 Native Apps OAuth, Users, Roles, SQL,
Re: [WiX-users] Wix Newbie
I'd recommend this book: http://www.amazon.co.uk/WiX-3-6-Developers-Windows-Installer-ebook/dp/B009YW82A0/ref=sr_1_1?ie=UTF8qid=1383827565sr=8-1keywords=wix It covers both Windows Installer using WiX, and bundles using burn and custom bootstrapper applications. On 6 November 2013 21:42, Nick Ramirez nickra...@hotmail.com wrote: Are you just starting your journey with WiX? If you are, you might take a step back from WPF user interfaces for a few days and dig into writing an MSI file. Once you've got that, I'd read up on how to use Burn by itself, using the UI that comes with the toolset. Here, I'm talking about just writing a bundle file and chaining packages in it, etc. Then, once you've got that down, move on to writing the WPF stuff, which may not even be necessary for you once you've seen what a plain old MSI can do. -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Wix-Newbie-tp7590252p7590342.html Sent from the wix-users mailing list archive at Nabble.com. -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Conditionally disabling the Install Location control in a bundle
Thanks Bob, We'll continue to use the msistuff setup.exe bootstrapper for now, until we find time to develop our own custom managed boostrapper application. It'd probably be a useful feature to add in a future version of WiX. Thanks again. John On 29 October 2013 01:32, Bob Arnson b...@joyofsetup.com wrote: On 26-Oct-13 05:15, John Ludlow wrote: I don't think the standard bootstapper application's theming is capable of that kind of customisation. That's correct. It would have to be a feature of WixStdBA. -- sig://boB http://joyofsetup.com/ -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Conditionally disabling the Install Location control in a bundle
Thanks but that's not the behaviour I need. Perhaps my explanation wasn't clear. The behaviour that I need is that when a particular registry entry exists the install location control is disabled so that the user cannot change the install directory. If the registry entry is not present then they can change the installation directory. I don't think the standard bootstapper application's theming is capable of that kind of customisation. I was hoping for a variable called DisableInstallDirControl or something like that which we could set during install depending on whether we found that registry entry or not. Thanks anyway On 26 Oct 2013 03:35, santhosh yalamuri santhu@gmail.com wrote: When the user selects another folder the variable is updated. On 25 Oct 2013 00:47, John Ludlow john.ludlow...@gmail.com wrote: Thanks for that Does that prevent the user from selecting another folder? Thanks again On 24 October 2013 17:10, santhosh yalamuri santhu@gmail.com wrote: We have to set InstallFolder variable in burn bootstrapper. Example: Variable Name=InstallFolder Type=string Value=/ On Thu, Oct 24, 2013 at 3:31 PM, John Ludlow john.ludlow...@gmail.com wrote: Hi all, We have an MSI for a client application which, if you have the server installed on the same system, must be installed in the same directory as the server. During the MSI install wizard for the client application, we use AppSearch to detect whether the server component is installed. If it is, we find out where that is, and set INSTALLDIR to that, then set a property which causes the Browse button on the Install Location page to be disabled, using the Condition element under that control. We've been evaluating burn as a bootstrapper, but we'd like to replicate this behaviour and haven't been able to find a way. At this point, we don't want to develop a full custom bootstrapper application for this particular install. (We're happy tweaking the theme though) Is there a way to replicate the above behavior using the standard bootstrapper application? We're on Wix 3.6 Thanks -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Regards, Santhosh S Yalamuri -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced
[WiX-users] Conditionally disabling the Install Location control in a bundle
Hi all, We have an MSI for a client application which, if you have the server installed on the same system, must be installed in the same directory as the server. During the MSI install wizard for the client application, we use AppSearch to detect whether the server component is installed. If it is, we find out where that is, and set INSTALLDIR to that, then set a property which causes the Browse button on the Install Location page to be disabled, using the Condition element under that control. We've been evaluating burn as a bootstrapper, but we'd like to replicate this behaviour and haven't been able to find a way. At this point, we don't want to develop a full custom bootstrapper application for this particular install. (We're happy tweaking the theme though) Is there a way to replicate the above behavior using the standard bootstrapper application? We're on Wix 3.6 Thanks -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Conditionally disabling the Install Location control in a bundle
Thanks for that Does that prevent the user from selecting another folder? Thanks again On 24 October 2013 17:10, santhosh yalamuri santhu@gmail.com wrote: We have to set InstallFolder variable in burn bootstrapper. Example: Variable Name=InstallFolder Type=string Value=/ On Thu, Oct 24, 2013 at 3:31 PM, John Ludlow john.ludlow...@gmail.com wrote: Hi all, We have an MSI for a client application which, if you have the server installed on the same system, must be installed in the same directory as the server. During the MSI install wizard for the client application, we use AppSearch to detect whether the server component is installed. If it is, we find out where that is, and set INSTALLDIR to that, then set a property which causes the Browse button on the Install Location page to be disabled, using the Condition element under that control. We've been evaluating burn as a bootstrapper, but we'd like to replicate this behaviour and haven't been able to find a way. At this point, we don't want to develop a full custom bootstrapper application for this particular install. (We're happy tweaking the theme though) Is there a way to replicate the above behavior using the standard bootstrapper application? We're on Wix 3.6 Thanks -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Regards, Santhosh S Yalamuri -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Set WixToolPath from another .Proj file
Through a mixture of trial and error we identified 6 properties that we needed to provide. We actually do this on the msbuild command line which calls our solution build rather than a .proj file but the concept is the same. WixToolPath=g:\BuildSoftware\Wixv3.6.3303.0\ WixTasksPath=g:\BuildSoftware\Wixv3.6.3303.0\\WixTasks.dll ReferencePath=g:\BuildSoftware\Wixv3.6.3303.0\ WixTargetsPath=g:\BuildSoftware\Wixv3.6.3303.0\wix.targets WixCATargetsPath=g:\BuildSoftware\Wixv3.6.3303.0\sdk\wix.ca.targets WixSdkPath=g:\BuildSoftware\Wixv3.6.3303.0\sdk\ Simply add these into your Properties list (semicolon delimited) Depending on what you're doing and how you have wix organised you might not need all of the properties. Our experience suggests the following (though if someone knows better, feel free to correct me!): Always required: WixToolPath WixTasksPath WixTargetsPath Required when using C# DTF Custom Actions: ReferencePath WixCATargetsPath WixSdkPath Hope that helps John On 22 October 2013 11:45, Ilir Bekteshi ilir...@gmail.com wrote: How would i set WixToolPath, WixTargetsPath and WiXTasks path from another proj file (not wixproj)? Right know i have another project.proj with Target Name=AfterBuild Message Text=$(Version)/ MSBuild Projects=$(WixMsiDir)Desktop.wixproj Properties=Version=$(Version) Targets=Rebuild / /Target But would like to set paths to Wix binaries from this proj so that when it's build from cmd (build server) it uses Wix that i have checked in, and when i build from studio i use the installed Wix. Thanks -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] WiX Installer using WPF
Wix's own bootstrapper is done this way, so you can use that as a sample. There's also a tutorial with code samples here: http://bryanpjohnston.com/2012/09/28/custom-wix-managed-bootstrapper-application/ (uses the MVVM-light framework). On 19 September 2013 10:23, Ravishankar ravishankar.krishnasw...@idsnext.com wrote: Hi, I need to create a WiX installer, but dont need to use the WiX UI(Installdir/FeatureTree/Mondo) Is it possible to create UI dialog using WPF(vb.net) If anyone has code samples, please share it. Thanks and Regards Ravi -- LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99! 1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. http://pubads.g.doubleclick.net/gampad/clk?id=58041151iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99! 1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. http://pubads.g.doubleclick.net/gampad/clk?id=58041151iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] WiX Installer using WPF
Here's the the link to the publisher's page for that book http://www.packtpub.com/windows-installer-xml-3-6-developers-guide/book On 19 September 2013 11:09, Ravishankar ravishankar.krishnasw...@idsnext.com wrote: Hi Kobus, Please send me the Link. Thanks and Regards Ravi On 9/19/2013 3:30 PM, Kobus Botha wrote: Hi Ravi, It is indeed possible to create custom WPF UI by using Wix's Burn engine. The code samples are in C#, but Chapter 16 of WiX 3.6: A Developer's Guide to Windows Installer XML by Nick Ramirez will tell you everything you need to know. Hope that helps. Kobus On 19 September 2013 11:23, Ravishankar ravishankar.krishnasw...@idsnext.com wrote: Hi, I need to create a WiX installer, but dont need to use the WiX UI(Installdir/FeatureTree/Mondo) Is it possible to create UI dialog using WPF(vb.net) If anyone has code samples, please share it. Thanks and Regards Ravi -- LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99! 1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. http://pubads.g.doubleclick.net/gampad/clk?id=58041151iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99! 1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. http://pubads.g.doubleclick.net/gampad/clk?id=58041151iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99! 1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. http://pubads.g.doubleclick.net/gampad/clk?id=58041151iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99! 1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. http://pubads.g.doubleclick.net/gampad/clk?id=58041151iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Execution order issue
Be aware that if your custom action gets any properties, then you'll need to push those through by using CustomActionData. On 18 September 2013 19:07, Phil Wilson phildgwil...@gmail.com wrote: Your copy custom action is immediate - that means it will always happen before any files are actually copied. If you need it to run after InstallFiles has physically copied files it should be marked deferred. Phil Wilson On Tue, Sep 17, 2013 at 10:45 PM, Kai Peters kpet...@otaksoft.com wrote: Hi all, hopefully my last newbie issue for some time (all previous issues have been resolved thanks to the great help from this list - thanks again!): I deploy a CA CA_CopyMasterIni to copy a configuration file template from location A to location B if my customer's IT dept. has dropped one in location A prior to installing my MSI. This works as expected. However, as this process is optional I always need to install a default template file (as shown below). The issue is that InstallFiles happens after my CA and thus the customer provided template gets overwritten if it was supplied. I had added NeverOverwrite=yes to the template component in hopes that this would prevent this overwriting but it does not... If I change sequences in the InstallExecute table and push my CA after InstallFiles, the CA does not run. How can I achieve my goal? As always, thanks for any pointers, K. DirectoryRef Id=AppDataProductLineFolder Component Id=COMP_IniTemplate Guid=* NeverOverwrite=yes File Id=FILE_IniTemplate Name=Quadra.ini KeyPath=yes Vital=no Source=$(var.MiscDir)\Quadra.ini / /Component /DirectoryRef !-- this CA copies an inifile template provided by customer's IT from COMMON_APPDATA to final destination -- CustomAction Id=CA_CopyMasterIni BinaryKey=BIN_InstallHelperDLL DllEntry=CopyTestMasterInifile Execute=immediate Return=check HideTarget=no Impersonate=yes / !-- schedule custom actions -- InstallExecuteSequence !-- back up Quadra.ini before old version is uninstalled -- Custom Action=CA_BackupGlobalIni After=InstallValidate / !-- restore Quadra.ini after the old version has been uninstalled -- Custom Action=CA_RestoreGlobalIni After=RemoveExistingProducts / !-- ... -- Custom Action=CA_CopyMasterIniAfter=CA_RestoreGlobalIni / /InstallExecuteSequence -- LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99! 1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. http://pubads.g.doubleclick.net/gampad/clk?id=58041151iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99! 1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. http://pubads.g.doubleclick.net/gampad/clk?id=58041151iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99! 1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. http://pubads.g.doubleclick.net/gampad/clk?id=58041151iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] How to remove custom application with malformed uninstall package
Actually there's not much difference as you get to the same place anyway. A version of the MSI in your cache that doesn't have the error and can be upgraded. The issue you might run into with modifying your package and doing a minor upgrade is that if you sign your MSIs you won't just be able to edit it directly. The cached MSI is less likely to be signed although that does depend a lot on how your package is put together. From my own experience, our packages are signed by the build (so can't just be edited using orca) but the cached ones have the file payload stripped and so are not signed. Your mileage may vary. If this made it into the wild then you would need to issue either a patch. Going the minor upgrade route is probably not going to scale very well if you have multiple versions with this error in the wild as major upgrades as you would need to make sure each customer got the correct fixed package for their version. A patch gives you that validation very cheaply and can target multiple versions as well, not to mention the fact that it's a lot smaller so it can be downloaded easier. However it doesn't sound as if any instance of the error made it into the wild so it's all OK. On Aug 29, 2013 12:24 AM, Hoover, Jacob jacob.hoo...@greenheck.com wrote: +1 for fixing your source msi an recaching the msi. I wouldn't recommend modifying the cached version, especially if this bug made it into the wild. On Aug 28, 2013, at 11:18 AM, Simon Gerhold simon.gerh...@cetis.si wrote: Thanks, good to know :) Simon Gerhold, razvojni inženir / Development Engineer Cetis d.d., Čopova 24, 3000 Celje, Slovenia - EU, T: +386 3 4278 785, F: +386 3 4278 651, www.cetis.si -Original Message- From: Wheeler, Blaine (DSHS/DCS) [mailto:bwhee...@dshs.wa.gov] Sent: Wednesday, August 28, 2013 5:21 PM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] How to remove custom application with malformed uninstall package Coincidentally I just read this section of Robert Dickau's tips page http://www.robertdickau.com/msi_tips.html#unfix -Original Message- From: Simon Gerhold [mailto:simon.gerh...@cetis.si] Sent: Wednesday, August 28, 2013 2:14 AM To: wix-users@lists.sourceforge.net Subject: [WiX-users] How to remove custom application with malformed uninstall package I created a setup project with Wix Toolset, which does something like this: * install (into ProgramFiles/MyApp, Desktop shortcut, StartMenu,...) * create a folder ProgramFiles/MyApp/InstallFolder * create some files in the folder ProgramFiles/MyApp/InstallFolder * run a powershell script, which installs some COM+ components In the ProgramFiles/MyApp/InstallFolder is also a powershell script, which removes my COM+ applications (regsvcs /u). This script is executed as a custom action on uninstall. But here I made a mistake - the custom action had the attribute After=RemoveFiles (it should of course be Before=RemoveFiles). Now when I try to uninstall on my application, the uninstall process terminates with the exception There is a problem with this Windows installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor.. The same exception occurs if I try to install/repair/change my application... Is there any possibility to uninstall my application without the last (faulty) custom action? Or to 'overinstall' it somehow? Simon Simon Gerhold, razvojni inženir / Development Engineer Cetis d.d., Čopova 24, 3000 Celje, Slovenia - EU, T: +386 3 4278 785, F: +386 3 4278 651, www.cetis.sihttp://www.cetis.si/ -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] [Wix]: Copy the INI file to local temp folder before Install Files action (MSI action)
If the file is packaged inside the MSI, how would anything copy it before the InstallFiles action? The only scenario that makes sense here (as far as I can see) is that you're in an upgrade situation, and you want to copy the version of the file you're upgrading from to the temp folder and read some information from it. Is that the case or are you in some other scenario? You're going to have to help us understand your situation if we're going to be able to help you. On 29 August 2013 08:22, ak m wixak...@gmail.com wrote: Could anyone help me on this? On Mon, Aug 26, 2013 at 10:45 AM, ak m wixak...@gmail.com wrote: File is packaged in MSI. INI file contains not only Model information but also about the port information etc... Basically this INI file is used for silent installation Anil On Sat, Aug 24, 2013 at 12:24 AM, Phil Wilson phildgwil...@gmail.com wrote: Exactly where is this ini file? It doesn't sound like it's actually packaged in the MSI file. Do you actually need the ini file or just the model number out of it? There's the DiFX framework for installing drivers - that might be useful. http://msdn.microsoft.com/en-us/library/windows/hardware/ff537782(v=vs.85).aspx Phil Wilson On Fri, Aug 23, 2013 at 7:23 AM, ak m wixak...@gmail.com wrote: Dear All, when user clicks MSI, 1. Copy the INI file to local temp folder before Install Files action (MSI action) 2. Get the model information from INI 3. Install the printer driver Could any one help me on this? Thanks in Advance... Anil -- Introducing Performance Central, a new site from SourceForge and AppDynamics. Performance Central is your source for news, insights, analysis and resources for efficient Application Performance Management. Visit us today! http://pubads.g.doubleclick.net/gampad/clk?id=48897511iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Introducing Performance Central, a new site from SourceForge and AppDynamics. Performance Central is your source for news, insights, analysis and resources for efficient Application Performance Management. Visit us today! http://pubads.g.doubleclick.net/gampad/clk?id=48897511iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] stop a service before uninstall
Is the issue that the FilesInUse dialog is popping up before your service is stopped and declaring files in use when those files will be unlocked when the service stops? It's unfortunate but all the information related to whether you are doing a removal or not is discovered at that point. In theory you could have an unconditioned (or conditioned as NOT UPGRADINGPRODUCTCODE) immediate custom action which tries to shut down the service before InstallValidate in the exec sequence (and either does nothing or fails silently if the service isn't there, because it will be run on install, uninstall, repair, modify, you name it). The problem you have here, however is that this is before you get UAC elevation and stopping a service is an elevated action. You'd need to provide a bootstrapper, and have it elevate your entire install process. It gets a little messy. On 29 August 2013 13:26, Alain Forget afor...@cmu.edu wrote: Why aren't you using the ServiceInstall element to install your service? If there is any way at all to use it, instead of a CA, I think most of us would strongly recommend it. At the very leat, you'll eaily be able to stop your service before uninstall. -Original Message- From: nkshirsagar [mailto:nkshirsa...@gmail.com] Sent: Thursday, August 29, 2013 08:19 To: wix-users@lists.sourceforge.net Subject: [WiX-users] stop a service before uninstall I install a windows service as a custom action during the install. During uninstall, I want to remove this service before the filesinUse dialogbox pops up. My condition is REMOVE=ALL for the uninstallation script to run, and I read on http://msdn.microsoft.com/en-us/library/windows/desktop/aa371626(v=vs.85).aspx that any custom action that depends on REMOVE=ALL must be sequenced after the InstallValidate action Can anyone help me stop the process cleanly through WIX through a custom action before the filesInUse pops up? -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/stop-a-service-before-uninstall-tp7588564.html Sent from the wix-users mailing list archive at Nabble.com. -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Component Rules
Well, it probably won't do what you're expecting. By the time RemoveFiles runs, the install has already decided it won't install those files, so what will most likely happen is it will remove the file but not install the new version. A trick (well, a horrible hack, really) I've used is called version lying. See this SO post: http://stackoverflow.com/questions/5542841/how-to-force-file-replacement-on-msi-upgrade. This does cause issues with patching, however. On 29 August 2013 14:00, tyler.w.r...@accenture.com wrote: If I add a RemoveFile/ to an existing component for a minor upgrade will that violate the component rules? As in one of our minor upgrades a customer ran into a problem of some .js and .xsl files not getting upgraded because they were modified by the version control system they put them in after they install it. So I wanted to add the RemoveFile/ to force the installer to upgrade them everytime. Tyler Reid | Operations and Infrastructure | Accenture Software | PC Insurance 1807 Jones Street | Bolivar, MO 65613| USA Office: +cc.xxx.xxx. | Fax: 417.777.3792 E-Mail: tyler.w.r...@accenture.commailto:tyler.w.r...@accenture.com | www.accenture.com/pcsoftwarehttp://www.accenture.com/pcsoftware This message is for the designated recipient only and may contain privileged, proprietary, or otherwise confidential information. If you have received it in error, please notify the sender immediately and delete the original. Any other use of the e-mail by you is prohibited. Where allowed by local law, electronic communications with Accenture and its affiliates, including e-mail and instant messaging (including content), may be scanned by our systems for the purposes of information security and assessment of internal compliance with Accenture policy. __ www.accenture.com -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] stop a service before uninstall
Well, it wouldn't because the REINSTALL property is set during repair and you're conditioning on NOT REINSTALL. On 29 August 2013 14:19, nkshirsagar nkshirsa...@gmail.com wrote: Hi John, I'm doing it this way as of now .. InstallExecuteSequence Custom Action=RunInstallScript After=InstallFiles NOT Installed/Custom /InstallExecuteSequence InstallExecuteSequence Custom Action='BeforeUninstall' Before='InstallValidate'Installed AND (NOT REINSTALL)/Custom /InstallExecuteSequence CustomAction Id=RunInstallScript ExeCommand=cmd /c install-solidfireprovider.cmd Directory=INSTALLFOLDER Execute=deferred Return=check/ CustomAction Id=BeforeUninstall ExeCommand=cmd /c uninstall-solidfireprovider.cmd Directory=INSTALLFOLDER Execute=immediate Return=check/ The only problem is repair doesnt execute the uninstall script, so the filesinUse pops up during repair. Otherwise, I dont see it during uninstall because I guess my uninstall CA gets called before Install Validate, which is what I want. -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/stop-a-service-before-uninstall-tp7588564p7588570.html Sent from the wix-users mailing list archive at Nabble.com. -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Component Rules
As long as there is an appropriate file to use, I agree, although really it has the same result. It wouldn't be appropriate to make them a companion of a file they're unrelated to as that would introduce a bogus dependency and if that other file ever disappeared, then you could introduce some nasty issues. On 29 August 2013 14:26, John Cooper jocoo...@jackhenry.com wrote: A better way to do that would be to make them CompanionFile's with a versioned assembly. -- John Merryweather Cooper Build Install Engineer -- ESA Jack Henry Associates, Inc.(r) Shawnee Mission, KS 66227 Office: 913-341-3434 x791011 jocoo...@jackhenry.com www.jackhenry.com -Original Message- From: tyler.w.r...@accenture.com [mailto:tyler.w.r...@accenture.com] Sent: Thursday, August 29, 2013 8:01 AM To: wix-users@lists.sourceforge.net Subject: [WiX-users] Component Rules If I add a RemoveFile/ to an existing component for a minor upgrade will that violate the component rules? As in one of our minor upgrades a customer ran into a problem of some .js and .xsl files not getting upgraded because they were modified by the version control system they put them in after they install it. So I wanted to add the RemoveFile/ to force the installer to upgrade them everytime. Tyler Reid | Operations and Infrastructure | Accenture Software | PC Insurance 1807 Jones Street | Bolivar, MO 65613| USA Office: +cc.xxx.xxx. | Fax: 417.777.3792 E-Mail: tyler.w.r...@accenture.commailto:tyler.w.r...@accenture.com | www.accenture.com/pcsoftwarehttp://www.accenture.com/pcsoftware This message is for the designated recipient only and may contain privileged, proprietary, or otherwise confidential information. If you have received it in error, please notify the sender immediately and delete the original. Any other use of the e-mail by you is prohibited. Where allowed by local law, electronic communications with Accenture and its affiliates, including e-mail and instant messaging (including content), may be scanned by our systems for the purposes of information security and assessment of internal compliance with Accenture policy. __ www.accenture.com -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users NOTICE: This electronic mail message and any files transmitted with it are intended exclusively for the individual or entity to which it is addressed. The message, together with any attachment, may contain confidential and/or privileged information. Any unauthorized review, use, printing, saving, copying, disclosure or distribution is strictly prohibited. If you have received this message in error, please immediately advise the sender by reply email and delete all copies. -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] stop a service before uninstall
Check the logs. That should tell you what REMOVE and REINSTALL are being set to, and when they are being set. Look for lines like this: MSI (s) (04:4C) [05:39:56:736]: Command Line: REMOVE=ALL CURRENTDIRECTORY=C:\Windows\system32 CLIENTUILEVEL=2 CLIENTPROCESSID=1768 or this: MSI (s) (64:48) [06:52:15:113]: Command Line: REINSTALL=ALL REINSTALLMODE=pecms CURRENTDIRECTORY=Z:\Tools\11.0\out\en CLIENTUILEVEL=2 CLIENTPROCESSID=2752 or this: MSI (s) (64:48) [06:52:15:113]: PROPERTY CHANGE: Adding REMOVE property. Its value is 'ALL'. or this: MSI (s) (64:48) [06:52:15:113]: PROPERTY CHANGE: Adding REINSTALL property. Its value is 'ALL'. On 29 August 2013 14:39, nkshirsagar nkshirsa...@gmail.com wrote: I guess its OK for the message to POPup during repair because it restarts the service automatically. just wondering why I could do it this way, but not with REMOVE=ALL condition -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/stop-a-service-before-uninstall-tp7588564p7588576.html Sent from the wix-users mailing list archive at Nabble.com. -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Component Rules
Of course it's all just nasty hacks. Really, we want away to advise Windows Installer on a per-file basis how we want particular files to be compared. @Microsoft: Hint, hint! :) On 29 August 2013 14:50, John Cooper jocoo...@jackhenry.com wrote: Agreed. When I need to do this, I make the non-versioned file a CompanionFile of the assembly which has the API which consumes those files. At least for WCF web services, that works pretty well. -- John Merryweather Cooper Build Install Engineer -- ESA Jack Henry Associates, Inc.(r) Shawnee Mission, KS 66227 Office: 913-341-3434 x791011 jocoo...@jackhenry.com www.jackhenry.com -Original Message- From: John Ludlow [mailto:john.ludlow...@gmail.com] Sent: Thursday, August 29, 2013 8:35 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Component Rules As long as there is an appropriate file to use, I agree, although really it has the same result. It wouldn't be appropriate to make them a companion of a file they're unrelated to as that would introduce a bogus dependency and if that other file ever disappeared, then you could introduce some nasty issues. On 29 August 2013 14:26, John Cooper jocoo...@jackhenry.com wrote: A better way to do that would be to make them CompanionFile's with a versioned assembly. -- John Merryweather Cooper Build Install Engineer -- ESA Jack Henry Associates, Inc.(r) Shawnee Mission, KS 66227 Office: 913-341-3434 x791011 jocoo...@jackhenry.com www.jackhenry.com -Original Message- From: tyler.w.r...@accenture.com [mailto:tyler.w.r...@accenture.com] Sent: Thursday, August 29, 2013 8:01 AM To: wix-users@lists.sourceforge.net Subject: [WiX-users] Component Rules If I add a RemoveFile/ to an existing component for a minor upgrade will that violate the component rules? As in one of our minor upgrades a customer ran into a problem of some .js and .xsl files not getting upgraded because they were modified by the version control system they put them in after they install it. So I wanted to add the RemoveFile/ to force the installer to upgrade them everytime. Tyler Reid | Operations and Infrastructure | Accenture Software | PC Insurance 1807 Jones Street | Bolivar, MO 65613| USA Office: +cc.xxx.xxx. | Fax: 417.777.3792 E-Mail: tyler.w.r...@accenture.commailto:tyler.w.r...@accenture.com | www.accenture.com/pcsoftwarehttp://www.accenture.com/pcsoftware This message is for the designated recipient only and may contain privileged, proprietary, or otherwise confidential information. If you have received it in error, please notify the sender immediately and delete the original. Any other use of the e-mail by you is prohibited. Where allowed by local law, electronic communications with Accenture and its affiliates, including e-mail and instant messaging (including content), may be scanned by our systems for the purposes of information security and assessment of internal compliance with Accenture policy. __ www.accenture.com -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.c lktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users NOTICE: This electronic mail message and any files transmitted with it are intended exclusively for the individual or entity to which it is addressed. The message, together with any attachment, may contain confidential and/or privileged information. Any unauthorized review, use, printing, saving, copying, disclosure or distribution is strictly prohibited. If you have received this message in error, please immediately advise the sender by reply email and delete all copies. -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.c lktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Component Rules
Interesting. My experience with that in the past (I tried to use it to solve a similar problem) was that it didn't work because the decision about whether to install a particular file was made in the script generation phase (where immediate actions run) but RemoveFile runs after that. But that was quite a long time ago (before 2011 I think) so it's possible it was fixed in later version of Windows Installer. If it works for you and you test it on all supported platforms then I can't see why you can't use that method. Also, thinking about it now, putting the InstallExecute action after RemoveFiles may also get around that issue. On 29 August 2013 15:28, tyler.w.r...@accenture.com wrote: @John Ludlow: Ok I was following what I found in a wix email chain by Chad Peterson from 2011. The post is below as well as the url to the entire email chain. Another option is to use the RemoveFile/ element tied to the same Component as your File/ element. This will always clear out the existing file prior to the current install writing the new one. Works for rollback and uninstall. Component Id=Filetxt DiskId=1 Guid=someguid RemoveFile Id=Remove_Filetxt Name=File.txt On=install / File Id=Filetxt Name=File.txt Source=.\data\File.txt / /Component The RemoveFiles action is always scheduled before the InstallFiles action by default, so as long as you don't change that sequence in InstallExecuteSequence then it should work fine. I consider this the functional equivalent of the InstallShield Always Overwrite setting. http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Using-wix-how-to-always-overwrite-a-file-td6904118.html @John Cooper: I am thinking we had some troubles with multi instance and companion files in the past and have since removed them all from any of our installs, but I wasn't around for that conversation and nobody seems to remember why so I will give that a try thank you. Speaking of that though would that violate the Component rules for a minor upgrade? Tyler Reid | Operations and Infrastructure | Accenture Software | PC Insurance 1807 Jones Street | Bolivar, MO 65613| USA Office: +cc.xxx.xxx. | Fax: 417.777.3792 E-Mail: tyler.w.r...@accenture.commailto:tyler.w.r...@accenture.com | www.accenture.com/pcsoftwarehttp://www.accenture.com/pcsoftware This message is for the designated recipient only and may contain privileged, proprietary, or otherwise confidential information. If you have received it in error, please notify the sender immediately and delete the original. Any other use of the e-mail by you is prohibited. Where allowed by local law, electronic communications with Accenture and its affiliates, including e-mail and instant messaging (including content), may be scanned by our systems for the purposes of information security and assessment of internal compliance with Accenture policy. __ www.accenture.com -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Component Rules
Yeah actually that's quite nice. On 29 August 2013 18:50, John Cooper jocoo...@jackhenry.com wrote: I like that. A little table-driven touch custom action. -- John Merryweather Cooper Build Install Engineer -- ESA Jack Henry Associates, Inc.(r) Shawnee Mission, KS 66227 Office: 913-341-3434 x791011 jocoo...@jackhenry.com www.jackhenry.com -Original Message- From: Phil Wilson [mailto:phildgwil...@gmail.com] Sent: Thursday, August 29, 2013 12:30 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Component Rules If they're not being replaced because of the file modification rules, then you could write a custom action to make the creationdate and modifydate identical, and run it early before InstallValidate. Phil Wilson On Thu, Aug 29, 2013 at 7:00 AM, John Ludlow john.ludlow...@gmail.com wrote: Of course it's all just nasty hacks. Really, we want away to advise Windows Installer on a per-file basis how we want particular files to be compared. @Microsoft: Hint, hint! :) On 29 August 2013 14:50, John Cooper jocoo...@jackhenry.com wrote: Agreed. When I need to do this, I make the non-versioned file a CompanionFile of the assembly which has the API which consumes those files. At least for WCF web services, that works pretty well. -- John Merryweather Cooper Build Install Engineer -- ESA Jack Henry Associates, Inc.(r) Shawnee Mission, KS 66227 Office: 913-341-3434 x791011 jocoo...@jackhenry.com www.jackhenry.com -Original Message- From: John Ludlow [mailto:john.ludlow...@gmail.com] Sent: Thursday, August 29, 2013 8:35 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Component Rules As long as there is an appropriate file to use, I agree, although really it has the same result. It wouldn't be appropriate to make them a companion of a file they're unrelated to as that would introduce a bogus dependency and if that other file ever disappeared, then you could introduce some nasty issues. On 29 August 2013 14:26, John Cooper jocoo...@jackhenry.com wrote: A better way to do that would be to make them CompanionFile's with a versioned assembly. -- John Merryweather Cooper Build Install Engineer -- ESA Jack Henry Associates, Inc.(r) Shawnee Mission, KS 66227 Office: 913-341-3434 x791011 jocoo...@jackhenry.com www.jackhenry.com -Original Message- From: tyler.w.r...@accenture.com [mailto:tyler.w.r...@accenture.com] Sent: Thursday, August 29, 2013 8:01 AM To: wix-users@lists.sourceforge.net Subject: [WiX-users] Component Rules If I add a RemoveFile/ to an existing component for a minor upgrade will that violate the component rules? As in one of our minor upgrades a customer ran into a problem of some .js and .xsl files not getting upgraded because they were modified by the version control system they put them in after they install it. So I wanted to add the RemoveFile/ to force the installer to upgrade them everytime. Tyler Reid | Operations and Infrastructure | Accenture Software | PC Insurance 1807 Jones Street | Bolivar, MO 65613| USA Office: +cc.xxx.xxx. | Fax: 417.777.3792 E-Mail: tyler.w.r...@accenture.commailto:tyler.w.r...@accenture.com | www.accenture.com/pcsoftwarehttp://www.accenture.com/pcsoftware | This message is for the designated recipient only and may contain privileged, proprietary, or otherwise confidential information. If you have received it in error, please notify the sender immediately and delete the original. Any other use of the e-mail by you is prohibited. Where allowed by local law, electronic communications with Accenture and its affiliates, including e-mail and instant messaging (including content), may be scanned by our systems for the purposes of information security and assessment of internal compliance with Accenture policy. __ www.accenture.com -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/os tg.c lktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix
Re: [WiX-users] How to remove custom application with malformed uninstall package
You have a couple of options: Firstly, there's the MSI Cleanup Utility http://gallery.technet.microsoft.com/MSI-cleanup-utility-3889c8db This is an old tool which I thought had been retired, but it's come in very handy. Note that this will not perform any uninstall operations or any MSI logic at all. It basically hunts round the MSI registry for evidence of your install and removes it. Any of your own registry entries or files will not be removed. But it's good for cleaning up a broken install. Secondly, there's it's younger sibling, in the form of a FixIt troubleshooter: http://support.microsoft.com/mats/Program_Install_and_Uninstall This will scan for installs it thinks have problems, ask you a few questions, then do pretty much the same as the cleanup utility above, though it's supposed to do a more intelligent job. Thirdly, you can find the appropriate MSI in the c:\windows\installer cache, remove the offending action from the sequence using orca.exe and then try to uninstall it again. Lastly, I know some people who swear by CCleaner for this kind of thing: http://www.piriform.com/ccleaner Hope one of those suggestions helps. John On 28 August 2013 10:13, Simon Gerhold simon.gerh...@cetis.si wrote: I created a setup project with Wix Toolset, which does something like this: * install (into ProgramFiles/MyApp, Desktop shortcut, StartMenu,...) * create a folder ProgramFiles/MyApp/InstallFolder * create some files in the folder ProgramFiles/MyApp/InstallFolder * run a powershell script, which installs some COM+ components In the ProgramFiles/MyApp/InstallFolder is also a powershell script, which removes my COM+ applications (regsvcs /u). This script is executed as a custom action on uninstall. But here I made a mistake - the custom action had the attribute After=RemoveFiles (it should of course be Before=RemoveFiles). Now when I try to uninstall on my application, the uninstall process terminates with the exception There is a problem with this Windows installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor.. The same exception occurs if I try to install/repair/change my application... Is there any possibility to uninstall my application without the last (faulty) custom action? Or to 'overinstall' it somehow? Simon Simon Gerhold, razvojni inženir / Development Engineer Cetis d.d., Čopova 24, 3000 Celje, Slovenia - EU, T: +386 3 4278 785, F: +386 3 4278 651, www.cetis.sihttp://www.cetis.si/ -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] How to remove custom application with malformed uninstall package
If this MSI is in the field then David's suggestion is the best option. I was assuming it was a development version on a test system, and you just wanted to clean that system down. On 28 August 2013 11:10, David Watson dwat...@sdl.com wrote: Make a minor update msi that fixes the issue and get your users (or write a stub that) runs it from the command line with the repair and recache msi options. msiexec /fv your.msi /l*v log.txt -Original Message- From: John Ludlow [mailto:john.ludlow...@gmail.com] Sent: 28 August 2013 10:34 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] How to remove custom application with malformed uninstall package You have a couple of options: Firstly, there's the MSI Cleanup Utility http://gallery.technet.microsoft.com/MSI-cleanup-utility-3889c8db This is an old tool which I thought had been retired, but it's come in very handy. Note that this will not perform any uninstall operations or any MSI logic at all. It basically hunts round the MSI registry for evidence of your install and removes it. Any of your own registry entries or files will not be removed. But it's good for cleaning up a broken install. Secondly, there's it's younger sibling, in the form of a FixIt troubleshooter: http://support.microsoft.com/mats/Program_Install_and_Uninstall This will scan for installs it thinks have problems, ask you a few questions, then do pretty much the same as the cleanup utility above, though it's supposed to do a more intelligent job. Thirdly, you can find the appropriate MSI in the c:\windows\installer cache, remove the offending action from the sequence using orca.exe and then try to uninstall it again. Lastly, I know some people who swear by CCleaner for this kind of thing: http://www.piriform.com/ccleaner Hope one of those suggestions helps. John On 28 August 2013 10:13, Simon Gerhold simon.gerh...@cetis.si wrote: I created a setup project with Wix Toolset, which does something like this: * install (into ProgramFiles/MyApp, Desktop shortcut, StartMenu,...) * create a folder ProgramFiles/MyApp/InstallFolder * create some files in the folder ProgramFiles/MyApp/InstallFolder * run a powershell script, which installs some COM+ components In the ProgramFiles/MyApp/InstallFolder is also a powershell script, which removes my COM+ applications (regsvcs /u). This script is executed as a custom action on uninstall. But here I made a mistake - the custom action had the attribute After=RemoveFiles (it should of course be Before=RemoveFiles). Now when I try to uninstall on my application, the uninstall process terminates with the exception There is a problem with this Windows installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor.. The same exception occurs if I try to install/repair/change my application... Is there any possibility to uninstall my application without the last (faulty) custom action? Or to 'overinstall' it somehow? Simon Simon Gerhold, razvojni inženir / Development Engineer Cetis d.d., Čopova 24, 3000 Celje, Slovenia - EU, T: +386 3 4278 785, F: +386 3 4278 651, www.cetis.sihttp://www.cetis.si/ -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.c lktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users - - Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users SDL PLC confidential, all rights reserved. If you are not the intended recipient of this mail SDL requests and requires that you delete it without acting upon or copying any of its contents, and we further request that you advise us. SDL PLC is a public limited company registered in England and Wales. Registered number: 02675207. Registered address: Globe House, Clivemont Road, Maidenhead, Berkshire SL6 7DY, UK
Re: [WiX-users] How to remove custom application with malformed uninstall package
Glad I could help On 28 August 2013 14:13, Simon Gerhold simon.gerh...@cetis.si wrote: Thanks John David, I used John's third option with orca.exe (I just deleted the problematic custom action and all is good). Thanks :) -Original Message- From: John Ludlow [mailto:john.ludlow...@gmail.com] Sent: Wednesday, August 28, 2013 12:30 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] How to remove custom application with malformed uninstall package If this MSI is in the field then David's suggestion is the best option. I was assuming it was a development version on a test system, and you just wanted to clean that system down. On 28 August 2013 11:10, David Watson dwat...@sdl.com wrote: Make a minor update msi that fixes the issue and get your users (or write a stub that) runs it from the command line with the repair and recache msi options. msiexec /fv your.msi /l*v log.txt -Original Message- From: John Ludlow [mailto:john.ludlow...@gmail.com] Sent: 28 August 2013 10:34 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] How to remove custom application with malformed uninstall package You have a couple of options: Firstly, there's the MSI Cleanup Utility http://gallery.technet.microsoft.com/MSI-cleanup-utility-3889c8db This is an old tool which I thought had been retired, but it's come in very handy. Note that this will not perform any uninstall operations or any MSI logic at all. It basically hunts round the MSI registry for evidence of your install and removes it. Any of your own registry entries or files will not be removed. But it's good for cleaning up a broken install. Secondly, there's it's younger sibling, in the form of a FixIt troubleshooter: http://support.microsoft.com/mats/Program_Install_and_Uninstall This will scan for installs it thinks have problems, ask you a few questions, then do pretty much the same as the cleanup utility above, though it's supposed to do a more intelligent job. Thirdly, you can find the appropriate MSI in the c:\windows\installer cache, remove the offending action from the sequence using orca.exe and then try to uninstall it again. Lastly, I know some people who swear by CCleaner for this kind of thing: http://www.piriform.com/ccleaner Hope one of those suggestions helps. John On 28 August 2013 10:13, Simon Gerhold simon.gerh...@cetis.si wrote: I created a setup project with Wix Toolset, which does something like this: * install (into ProgramFiles/MyApp, Desktop shortcut, StartMenu,...) * create a folder ProgramFiles/MyApp/InstallFolder * create some files in the folder ProgramFiles/MyApp/InstallFolder * run a powershell script, which installs some COM+ components In the ProgramFiles/MyApp/InstallFolder is also a powershell script, which removes my COM+ applications (regsvcs /u). This script is executed as a custom action on uninstall. But here I made a mistake - the custom action had the attribute After=RemoveFiles (it should of course be Before=RemoveFiles). Now when I try to uninstall on my application, the uninstall process terminates with the exception There is a problem with this Windows installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor.. The same exception occurs if I try to install/repair/change my application... Is there any possibility to uninstall my application without the last (faulty) custom action? Or to 'overinstall' it somehow? Simon Simon Gerhold, razvojni inženir / Development Engineer Cetis d.d., Čopova 24, 3000 Celje, Slovenia - EU, T: +386 3 4278 785, F: +386 3 4278 651, www.cetis.sihttp://www.cetis.si/ -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg .c lktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- --- - Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu
Re: [WiX-users] Reading xml file
You would need an immediate custom action to read the .config file, find the appropriate connection string, and set its value to a property. CustomAction Id=MyAction ExeCommand=cmd.exe /C MyDatabaseInstaller [CONNSTR] Execute=deferred Return=check / If you're using WiX from Visual Studio, you can go to File New Project, and choose Windows Installer XML C# Custom Action Project. (Or C++ if you prefer). The C# version will generate a method for you which represents your custom action entry point, with a Session object which represents the MSI session. You can treat it like a dictionary when it comes to properties: // Get a property string cfgFile = session[ConfigurationFilePath]; // Whatever code you need to find the right connection string // Set a property session[CONNSTR] = connstr; The C++ version uses a bunch of functions all beginning with Wca. I can't remember the syntax right now but the set and get functions for properties aren't too difficult IIRC. On 27 August 2013 19:32, Carl Enander c_enan...@hotmail.com wrote: Hello, I am new to Wix and have a question regarding wix and reading settings from an xml file when running the installer. I have an xml file with database connectionstrings that are different for my test and production environment: configurationprodservernameconnectionstringconnstr1/connectionstring/prodservernametestservernameconnectionstringconnstr2/connectionstring/testservername/configuration When running installer I want to use the [COMPUTERNAME] variable to find the correct connectionstring value from the xml file and use this in a Custom Action (e.g. conntr1 to be used when installing on prod server and connstr2 on test server):CustomAction Id=MyAction ExeCommand=cmd.exe /C MyDatabaseInstaller Connstr Execute=deferred Return=check / Please guide me to the best way to do this simple task. BR, Carl -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Wix: Create OS specific installer using Wix?
Also, http://msdn.microsoft.com/en-us/library/aa370905(v=vs.85).aspx#operating_system_properties For example, to tell the difference between server and workstation editions of Windows, you can use MsiNTProductType. On 23 August 2013 13:58, Pally Sandher pally.sand...@iesve.com wrote: http://msdn.microsoft.com/en-us/library/windows/desktop/aa368012.aspx http://msdn.microsoft.com/en-us/library/aa372495.aspx http://msdn.microsoft.com/en-us/library/aa372497.aspx Palbinder Sandher Software Platform Engineer T: +44 (0) 141 945 8500 F: +44 (0) 141 945 8501 http://www.iesve.com **Design, Simulate + Innovate with the Virtual Environment** Integrated Environmental Solutions Limited. Registered in Scotland No. SC151456 Registered Office - Helix Building, West Of Scotland Science Park, Glasgow G20 0SP Email Disclaimer -Original Message- From: ak m [mailto:wixak...@gmail.com] Sent: 23 August 2013 13:05 To: wix-users@lists.sourceforge.net Subject: [WiX-users] Wix: Create OS specific installer using Wix? Dear All, How to create OS specific installer using Wix? For Example, Installer created for Windows XP 32-bit, should install on Windows XP 32-bit only. Installer created for Windows Vista 32-bit, should install on Windows Vista only 32-bit. OS: XP, Server2003, Vista, Server2008 7, 8, Server2012(32bit/64bit). Could you please let me know the solution for this? Thanks in Advance... Anil -- Introducing Performance Central, a new site from SourceForge and AppDynamics. Performance Central is your source for news, insights, analysis and resources for efficient Application Performance Management. Visit us today! http://pubads.g.doubleclick.net/gampad/clk?id=48897511iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Introducing Performance Central, a new site from SourceForge and AppDynamics. Performance Central is your source for news, insights, analysis and resources for efficient Application Performance Management. Visit us today! http://pubads.g.doubleclick.net/gampad/clk?id=48897511iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Introducing Performance Central, a new site from SourceForge and AppDynamics. Performance Central is your source for news, insights, analysis and resources for efficient Application Performance Management. Visit us today! http://pubads.g.doubleclick.net/gampad/clk?id=48897511iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] LGHT0103 error where path is shorter than 255 characters and file is present.
Does this ever work or is it failing consistently? If it's intermittent then unreliable access to that location could still be the cause. One other question is what does D: map to? You mention network, which makes me wonder if this is a mapped drive. Does this work if you use an entirely local path? Some MSI operations cause errors if with mapped network drives On Aug 23, 2013 10:05 PM, Alain Forget afor...@cmu.edu wrote: Never mind, it clearly does, given the LGHT error. Maybe the extra backslash is confusing it? i.e., maybe $(var.KMI.IntelliDrive.ServicesHost.TargetDir)\KMI.IntelliDrive.ServicesHost.vshost.exe.config Should be $(var.KMI.IntelliDrive.ServicesHost.TargetDir)KMI.IntelliDrive.ServicesHost.vshost.exe.config ? -Original Message- From: Alain Forget [mailto:afor...@cmu.edu] Sent: Friday, August 23, 2013 16:56 To: 'General discussion for Windows Installer XML toolset.' Subject: Re: [WiX-users] LGHT0103 error where path is shorter than 255 characters and file is present. You may already have verified this, but are you sure $(var.KMI.IntelliDrive.ServicesHost.TargetDir) is defined and points to the location you think it's supposed to point to? Alain -Original Message- From: Bodden, Doug (KMWCR) [mailto:doug.bod...@kantarmedia.com] Sent: Friday, August 23, 2013 16:21 To: wix-users@lists.sourceforge.net Subject: [WiX-users] LGHT0103 error where path is shorter than 255 characters and file is present. I'm seeing a LGHT0103 error. The files are simply reported as not found; but they're there. If you look at the light.exe command I ran below - I grabbed the command text from a Visual Studio build log, and then ran the ls command in powershell immediately after to demonstrate that the file is there. Does not seem to be related to the path length or have the cannot find file with type message in a similar behavior I saw reported. Powershell session w/ light.exe reproducing the error, and ls demonstrating the file is there: PS D:\Subversion\pdev\branches\Intellidrive\DirectHEAT_NPMarx\TNSMI.Net2\In telliDrive\IntelliDriveServiceHostWixSetup light.exe -out D:\Subversion\pdev\branches\Intellidrive\DirectHEAT_NPMarx\TNSMI.Net2\In telliDrive\IntelliDriveServiceHostWixSetup\bin\Release\en-US\IntelliDriv eServiceHostWixSetup.msi -pdbout D:\Subversion\pdev\branches\Intellidrive\DirectHEAT_NPMarx\TNSMI.Net2\In telliDrive\IntelliDriveServiceHostWixSetup\bin\Release\en-US\IntelliDriv eServiceHostWixSetup.wixpdb -cultures:en-US -ext C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixNetFxExtension.dll -loc UI\WixUI_en-us.wxl -contentsfile obj\Release\IntelliDriveServiceHostWixSetup.wixproj.BindContentsFileList en-US.txt -outputsfile obj\Release\IntelliDriveServiceHostWixSetup.wixproj.BindOutputsFileListe n-US.txt -builtoutputsfile obj\Release\IntelliDriveServiceHostWixSetup.wixproj.BindBuiltOutputsFile Listen-US.txt -wixprojectfile D:\Subversion\pdev\branches\Intellidrive\DirectHEAT_NPMarx\TNSMI.Net2\In telliDrive\IntelliDriveServiceHostWixSetup\IntelliDriveServiceHostWixSet up.wixproj obj\Release\CommonConfigContent.wixobj obj\Release\Product.wixobj obj\Release\ServiceHostContent.wixobj obj\Release\pth0E8FFB1A374BA65CFAE4D2CDD0154539\CancelDialog.wixobj obj\Release\pth0E8FFB1A374BA65CFAE4D2CDD0154539\Common.wixobj obj\Release\pth0E8FFB1A374BA65CFAE4D2CDD0154539\EnvironmentSelectionDial og.wixobj obj\Release\pth0E8FFB1A374BA65CFAE4D2CDD0154539\ErrorDialog.wixobj obj\Release\pth0E8FFB1A374BA65CFAE4D2CDD0154539\ExitDialog.wixobj obj\Release\pth0E8FFB1A374BA65CFAE4D2CDD0154539\FatalErrorDialog.wixobj obj\Release\pth0E8FFB1A374BA65CFAE4D2CDD0154539\FilesInUseDialog.wixobj obj\Release\pth0E8FFB1A374BA65CFAE4D2CDD0154539\PrimarySecondarySelectio nDialog.wixobj obj\Release\pth0E8FFB1A374BA65CFAE4D2CDD0154539\ProgressDialog.wixobj obj\Release\pth0E8FFB1A374BA65CFAE4D2CDD0154539\ServiceInstallerUI.wixob j obj\Release\pth0E8FFB1A374BA65CFAE4D2CDD0154539\UserExitDialog.wixobj obj\Release\pth0E8FFB1A374BA65CFAE4D2CDD0154539\WelcomeDialog.wixobj obj\Release\WindowsService.wixobj obj\Release\Product.Generated.wixobj Windows Installer Xml Linker version 3.7.1224.0 Copyright (C) Outercurve Foundation. All rights reserved. D:\Subversion\pdev\branches\Intellidrive\DirectHEAT_NPMarx\TNSMI.Net2\In telliDrive\IntelliDriveServiceHostWixSetup\ServiceHostContent.wxs(67) : error LGHT0103 : The system cannot find the file 'D:\Subversion\pdev\branches\Intellidrive\DirectHEAT_NPMarx\TNSMI.Net2\I ntelliDrive\Services Domain\KMI.IntelliDrive.ServicesHost\bin\Release\\KMI.IntelliDrive.Servi cesHost.vshost.exe.config'. PS D:\Subversion\pdev\branches\Intellidrive\DirectHEAT_NPMarx\TNSMI.Net2\In telliDrive\IntelliDriveServiceHostWixSetup ls 'D:\Subversion\pdev\branches\Intellidrive\DirectHEAT_NPMarx\TNSMI.Net2\I ntelliDrive\Services Domain\KMI.IntelliDrive.ServicesHost\bin\Release\\KMI.IntelliDrive.Servi cesHost.exe.config'
Re: [WiX-users] Duplicate symbol when using CompilerCore.CreateWixSimpleReferenceRow
Ok, minor facepalm moment here. It turned out that my component library project had a reference to my action library from when I was testing the action out before turning it into an extension. When this was combined with the reference created from the code, this created two references to the same thing in the same code, which gave me the error. I removed that and it worked just fine. The lesson to learn from this is to double-check those references if you get into these issues. I'm considering raising a bug because a) this error was kind of bogus in that the second reference could have been safely ignored, and b) the error message didn't really point to the reference on the component library project. It was only when I was ready to give up and abandon the 'wixlib-in-the-dll' idea as a bad job that I spotted this extra reference. Thanks for the help On 11 July 2013 17:44, John Ludlow john.ludlow...@gmail.com wrote: @Nick: Yes, I'm trying to use the extension in a library which is then used in a setup project. The resulting project relationships would be something like this: https://docs.google.com/file/d/0BzqWyEdx-NBBeDM5ZlJGejRoNE0/edit?usp=sharing The reason for this is that the setup project is just metadata related to the MSI itself. This makes it easy to include those components in some other setup, or even a merge module, just by adding the correct references to the correct projects. Is this not common practice? The other reason is that our body of setup code is sufficiently large that we need to split it up somehow. @Blair: The original error appears to be due to missing code in the extension. I'm not sure what missing code you were referring to here. On 11 July 2013 02:50, Blair Murri os...@live.com wrote: There are several ways to make the *Ref. One way is to author a *Ref/ element. Another is to use CompilerCore.CreateWixSimpleReferenceRow(). Either works the same as the other. The original error appears to be due to missing code in the extension. The second error (caused by trying to workaround that first error) appears to be caused by making an explicit reference to the wixlib that the extension contains along with the extension (causing double references). Date: Wed, 10 Jul 2013 13:57:00 -0700 From: nickra...@hotmail.com To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] Duplicate symbol when using CompilerCore.CreateWixSimpleReferenceRow Okay, I maybe wasn't fully understanding the problem. :) So, you're saying that you want to use your extension in another WIXLIB (unrelated to the WIXLIB you used to build your extension)...but when you try that, but don't reference the extension in your Setup project too, you get the error Cannot find the table definitions for As far as I can tell, you need to have the project reference for the extension in both the WIXLIB and the Setup project. To make your WIXLIB work, i.e. to pull the contents of the WIXLIB into your MSI (this may be the part you're missing?), you need to put a Property in the WIXLIB and then use a PropertyRef that points to that Property in your Setup file. This creates the link between the library and the MSI, pulling in all of the contents (your components, your new extension elements, etc.) that are in the library's Fragment into the MSI. -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Duplicate-symbol-when-using-CompilerCore-CreateWixSimpleReferenceRow-tp7587243p7587281.html Sent from the wix-users mailing list archive at Nabble.com. -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics
Re: [WiX-users] Starting a complex project
Agreed, that's really the only complete reference source for WiX 3.6, and there's quite a lot that you can only really learn via the book. Be careful though as I saw a bogus addition flying around on Amazon UK (it's gone now so maybe it was just a mistake). In the book, your requirements above mean you'll probably be getting to know Burn quite well, and chapters 15 and 16 cover that in some detail. On 22 July 2013 12:02, Gregg Swanson gregg.swan...@microsoft.com wrote: I would encourage you to purchase this book - http://www.amazon.com/WiX-3-6-Developers-Windows-Installer/dp/1782160426/ref=sr_1_1?ie=UTF8qid=1374490843sr=8-1keywords=wix WiX 3.6: A Developer's Guide to Windows Installer XML [Paperback] Nick Ramirez Be sure to get the latest edition. Thanks, Gregg -Original Message- From: Walter Gray [mailto:chrysal...@gmail.com] Sent: Monday, July 22, 2013 1:58 AM To: wix-users@lists.sourceforge.net Subject: [WiX-users] Starting a complex project Hey List! I've just begun the exciting journey of migrating our company's installer from a large, slow NSIS script to a shiny new WiX project, and I was hoping the list could point me towards a few more or let me know about any pitfalls I may encounter. I've done some research found a few resources, but much of the documentation seems to be a bit out of date or scattered between stackoverflow posts blog entries, so I was hoping people here might have some suggestions on where to look for the most up to date resources. The scope of this project is pretty large, and will need support for at minimum: -Slight UI customization (we'd prefer a relatively standard UI, but need 1-2 custom checkboxes for launching the readme, a few other minor things like that. ) -An OEM preinstaller with slightly different behavior -A mixed x86/x64 package - I'm aware I'll have to make separate .msi packages bundle them with burn. -chaining the VS2010 redistributable packages -chaining a 2nd driver installer Some stretch goals would be building a web installer adding a totally custom UI experience, perhaps akin to the VS2012 one (is there a tutorial on how they built that or an example? I'm presently downloading the source for wix to look at their installer files) So far I've found these: http://wix.tramontana.co.hu/tutorial - helpful, but somewhat out of date http://wix.sourceforge.net/manual-wix3/schema_index.htm - helpful, but only if you have some idea what you're looking for http://stackoverflow.com/questions/471424/wix-tricks-and-tips - The only best practices list I've seen, with some conflicting advice sadly locked -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Duplicate symbol when using CompilerCore.CreateWixSimpleReferenceRow
@Nick: Yes, I'm trying to use the extension in a library which is then used in a setup project. The resulting project relationships would be something like this: https://docs.google.com/file/d/0BzqWyEdx-NBBeDM5ZlJGejRoNE0/edit?usp=sharing The reason for this is that the setup project is just metadata related to the MSI itself. This makes it easy to include those components in some other setup, or even a merge module, just by adding the correct references to the correct projects. Is this not common practice? The other reason is that our body of setup code is sufficiently large that we need to split it up somehow. @Blair: The original error appears to be due to missing code in the extension. I'm not sure what missing code you were referring to here. On 11 July 2013 02:50, Blair Murri os...@live.com wrote: There are several ways to make the *Ref. One way is to author a *Ref/ element. Another is to use CompilerCore.CreateWixSimpleReferenceRow(). Either works the same as the other. The original error appears to be due to missing code in the extension. The second error (caused by trying to workaround that first error) appears to be caused by making an explicit reference to the wixlib that the extension contains along with the extension (causing double references). Date: Wed, 10 Jul 2013 13:57:00 -0700 From: nickra...@hotmail.com To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] Duplicate symbol when using CompilerCore.CreateWixSimpleReferenceRow Okay, I maybe wasn't fully understanding the problem. :) So, you're saying that you want to use your extension in another WIXLIB (unrelated to the WIXLIB you used to build your extension)...but when you try that, but don't reference the extension in your Setup project too, you get the error Cannot find the table definitions for As far as I can tell, you need to have the project reference for the extension in both the WIXLIB and the Setup project. To make your WIXLIB work, i.e. to pull the contents of the WIXLIB into your MSI (this may be the part you're missing?), you need to put a Property in the WIXLIB and then use a PropertyRef that points to that Property in your Setup file. This creates the link between the library and the MSI, pulling in all of the contents (your components, your new extension elements, etc.) that are in the library's Fragment into the MSI. -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Duplicate-symbol-when-using-CompilerCore-CreateWixSimpleReferenceRow-tp7587243p7587281.html Sent from the wix-users mailing list archive at Nabble.com. -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
[WiX-users] Duplicate symbol when using CompilerCore.CreateWixSimpleReferenceRow
Hi, My installer has two projects - a Setup Project which emits an .MSI and contains install metadata, and a Setup Library Project which emits a .wixlib which contains install components. The latter makes use of a compiler extension which generates an MSI table based on some child elements of the File element. In other words, it looks like this: File myext:MyFunkyExtension/ /File (attributes omitted for brevity) The extension consists of three projects: a C# class library for the actual extension, a C++ Custom Action Library for the custom actions that will use the data in the table, and a wixlib to hold the custom action definition. The CA DLL is bound into the wixlib, and the wixlib is included in the extension dll project as an embedded resource. Now here comes the issue... When I reference the extension DLL from just the wixlib which has the components in, I get this error: Error 1 Cannot find the table definitions for the 'MyTable' table. This is likely due to a typing error or missing extension. Please ensure all the necessary extensions are supplied on the command line with the -ext parameter. light.exe 0 1 MyInstall I wondered if the setup project needed the reference as well, but when I add that I get this: Error 1 Duplicate symbol 'CustomAction:MyCA' found. This typically means that an Id is duplicated. Check to make sure all your identifiers of a given type (File, Component, Feature) are unique. MyComponentSetupLibrary.wixlib 0 1 MyInstall I reckon this is down to this code at the end of the ParseElement methjod in the extension: Core.CreateWixSimpleReferenceRow(ln, CustomAction, MyCA); I did this on the suggestion of the Wix 3.6 Development Guide (Chapter 14) in order to create a reference to the action in order to pull the fragment into the installation. I also noticed that my ParseElement method seems to get called twice. Is this because I have 2 references from my projects (one from my setup project and one from my setup library project)? This is odd - I thought you could reference things as many times as you liked in this manner, and if it was already there then it would just ignore it. Any hints would be greatly appreciated. Thanks John -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Duplicate symbol when using CompilerCore.CreateWixSimpleReferenceRow
Hi Blair, Ok, does that mean I've encountered an error in the book, then? The book suggests adding the wixlib to the extension, and I've done that (means I should only have to reference the extension, not the wixlib, right?). However, the sample code in the book does not come with a test install which shows how to reference it, nor is this discussed in the book in any detail. I was going to create one but have not had the time yet, so I'm not sure if the code in the book works or not. (Wouldn't be the first time I've come across sample code in a book that doesn't compile). I got that the extension needs to be supplied to both (though, honestly, it's a bit annoying having to propagate the references). That's obviously why the first error appeared. It made sense that this was because I was referencing it twice, but I figured the book was probably correct and I was missing something (and I didn't want to just remove the line so it worked temporarily). It would probably be a good improvement to have this behave like I described above - you can only declare something once, but you can create as many references as you like to it, even if those references are technically duplicates of each other. In the meantime, I'll remove that line. Thanks PS: I'm still planning to write this up as a tutorial, but I just want to get stuff like this sorted first On 10 July 2013 14:46, Blair Murri os...@live.com wrote: A WixExtension used in the way you describe usually supplies three things: a CompilerExtension (to parse your new elements and attributes), a Table definition (comes from a tables.xml-style file with the definitions of the tables unique to your extension), and a binary-wixlib (containing your CAs and related authoring). Usually your CompilerExtension will supply two things: references to items in your wixlib, and rows into your tables (from the authoring you parse). Those rows are not part of your wixlib. CreateWixSimpleReferenceRow creates a reference to a row that needs to be supplied from elsewhere, usually the wixlib supplied by the extension. If the WixExtension supplies the wixlib, you don't need to supply it. Also, if the WixExtension supplies the table definitions (via the tables.xml-style file), you don't need to duplicate the table definitions in your wixlib (using CustomTable elements). Also, make sure that your extension is supplied to both candle and light in your build script. I would guess that you are missing the tables.xml-style reference in your WixExtension (which I suspect is the source of your missing error), and that you are supplying the wixlib used in your extension directly to your setup project (which I suspect is the source of your duplicate symbol). From: john.ludlow...@gmail.com Date: Wed, 10 Jul 2013 12:25:38 +0100 To: wix-users@lists.sourceforge.net Subject: [WiX-users] Duplicate symbol when using CompilerCore.CreateWixSimpleReferenceRow Hi, My installer has two projects - a Setup Project which emits an .MSI and contains install metadata, and a Setup Library Project which emits a .wixlib which contains install components. The latter makes use of a compiler extension which generates an MSI table based on some child elements of the File element. In other words, it looks like this: File myext:MyFunkyExtension/ /File (attributes omitted for brevity) The extension consists of three projects: a C# class library for the actual extension, a C++ Custom Action Library for the custom actions that will use the data in the table, and a wixlib to hold the custom action definition. The CA DLL is bound into the wixlib, and the wixlib is included in the extension dll project as an embedded resource. Now here comes the issue... When I reference the extension DLL from just the wixlib which has the components in, I get this error: Error 1 Cannot find the table definitions for the 'MyTable' table. This is likely due to a typing error or missing extension. Please ensure all the necessary extensions are supplied on the command line with the -ext parameter. light.exe 0 1 MyInstall I wondered if the setup project needed the reference as well, but when I add that I get this: Error 1 Duplicate symbol 'CustomAction:MyCA' found. This typically means that an Id is duplicated. Check to make sure all your identifiers of a given type (File, Component, Feature) are unique. MyComponentSetupLibrary.wixlib 0 1 MyInstall I reckon this is down to this code at the end of the ParseElement methjod in the extension: Core.CreateWixSimpleReferenceRow(ln, CustomAction, MyCA); I did this on the suggestion of the Wix 3.6 Development Guide (Chapter 14) in order to create a reference to the action in order to pull the fragment into the installation. I also noticed that my ParseElement method seems to get called twice. Is this because I have 2 references from my projects (one
Re: [WiX-users] Duplicate symbol when using CompilerCore.CreateWixSimpleReferenceRow
Blair, Yes I have the tables.xml correctly referenced as described above. The error has disappeared. If this pattern is idiomatic for this type of extension, I'm happy. My points above were * The only widely available documentation for this appears to have an error * It would have been better if WiX had not thrown this error and instead simply thrown the second reference away (I can't see any way this might be dangerous, since a reference is just a reference). If I'm missing anything with either of those points, please let me know. If I have any further questions, I'll be back in touch :) Thanks for your help John On 10 July 2013 15:51, Blair Murri os...@live.com wrote: John, Yes, you put the wixlib only into the extension, and that allows you to have your setup project only reference the extension and not the wixlib directly. The setup project references the extension in a similar fashion to the toolset-supplied extensions, except that the path (including the .dll at the end of the filename) need to be supplied (done for you by Votive). I haven't looked that the example in the book (yet). You supply the table definitions by overriding the TableDefinitions property similar to this: private TableDefinitionCollection tableDefinitions; public override TableDefinitionCollection TableDefinitions { get { if (null == this.tableDefinitions) { this.tableDefinitions = LoadTableDefinitionsHelper(Assembly.GetExecutingAssembly(), assembly-resource-prefix.tables.xml); } return this.tableDefinitions; } } (looks very similar to the code used to supply the wixlib -- the GetLibrary() override you had to use to have the extension supply your wixlib) You place the tables.xml file into your managed resources a similar way as you do your wixlib. The tables.xml file uses the tableDefinitions schema ( http://schemas.microsoft.com/wix/2006/tables), the xsd of which is only in the sources (src\wix\Xsd\tables.xsd). Only supply attributes that are not required if you need to override the default value. The TablesYesNoType type defaults to no, and most of the attributes come from MSDN and end up in the table validation metadata. Blair From: john.ludlow...@gmail.com Date: Wed, 10 Jul 2013 15:20:56 +0100 To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] Duplicate symbol when using CompilerCore.CreateWixSimpleReferenceRow Hi Blair, Ok, does that mean I've encountered an error in the book, then? The book suggests adding the wixlib to the extension, and I've done that (means I should only have to reference the extension, not the wixlib, right?). However, the sample code in the book does not come with a test install which shows how to reference it, nor is this discussed in the book in any detail. I was going to create one but have not had the time yet, so I'm not sure if the code in the book works or not. (Wouldn't be the first time I've come across sample code in a book that doesn't compile). I got that the extension needs to be supplied to both (though, honestly, it's a bit annoying having to propagate the references). That's obviously why the first error appeared. It made sense that this was because I was referencing it twice, but I figured the book was probably correct and I was missing something (and I didn't want to just remove the line so it worked temporarily). It would probably be a good improvement to have this behave like I described above - you can only declare something once, but you can create as many references as you like to it, even if those references are technically duplicates of each other. In the meantime, I'll remove that line. Thanks PS: I'm still planning to write this up as a tutorial, but I just want to get stuff like this sorted first On 10 July 2013 14:46, Blair Murri os...@live.com wrote: A WixExtension used in the way you describe usually supplies three things: a CompilerExtension (to parse your new elements and attributes), a Table definition (comes from a tables.xml-style file with the definitions of the tables unique to your extension), and a binary-wixlib (containing your CAs and related authoring). Usually your CompilerExtension will supply two things: references to items in your wixlib, and rows into your tables (from the authoring you parse). Those rows are not part of your wixlib. CreateWixSimpleReferenceRow creates a reference to a row that needs to be supplied from elsewhere, usually the wixlib supplied by the extension. If the WixExtension supplies the wixlib, you don't need to supply it. Also, if the WixExtension supplies the table definitions (via the tables.xml-style file), you don't need to duplicate the table definitions in your wixlib (using CustomTable elements). Also, make sure that your extension is supplied to
Re: [WiX-users] Duplicate symbol when using CompilerCore.CreateWixSimpleReferenceRow
Yup, did that - that's how I know there's no test installer for it. When I removed that line, the install compiled but without the action. I'll add a test install to the sample, and see what I get. I just haven't had time to do that today, unfortunately. On 10 July 2013 17:47, Nick Ramirez nickra...@hotmail.com wrote: You should be able to download the example for that chapter at the Packt publishers (packtpub.com) site. On the page that shows the details about the book, click the tab that says Support and there ought to be a Code Downloads link. -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Duplicate-symbol-when-using-CompilerCore-CreateWixSimpleReferenceRow-tp7587243p7587260.html Sent from the wix-users mailing list archive at Nabble.com. -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Error 1308 (Source File not found) emitted as Info on upgrade
Hi again, just so you know, I tried setting Vital=yes and removing the MsiFileHash table entry for that file, and I'm still getting the same behaviour. It's curious that it would translate the error like this (points to a bug in MSI, I think) but other than that this isn't really a big deal. Thanks for your help On 30 May 2013 20:43, John Ludlow john.ludlow...@gmail.com wrote: Thanks Phil, I'll take a look when I get a chance. I have a feeling it's still in the hash table. Thanks again. On 30 May 2013 19:28, Phil Wilson phil.wil...@mvps.org wrote: Have a look at the vital setting for the file. You may find it's not vital in the Info message case. MSI File table: http://msdn.microsoft.com/en-us/library/windows/desktop/aa368596(v=vs.85).as px If the file is external and you are replscing it at the last moment make sure you don't make a file hash mistake. You don't want the hash in the MSI file to not match the actual file, so turn it off for that file unless you are fixing the MsiFileHash table when you replace the file. Phil -Original Message- From: John Ludlow [mailto:john.ludlow...@gmail.com] Sent: Thursday, May 30, 2013 6:08 AM To: General discussion for Windows Installer XML toolset. Subject: [WiX-users] Error 1308 (Source File not found) emitted as Info on upgrade Hi, I have one MSI, with a bunch of compressed files in an embedded cab, and one readme next to the install as an uncompressed file. This file is still in the installer, it's just got the nonCompressed bit set. This is so we can update the readme right up until release with late-breaking information. This all works fine for fresh installs and upgrades, as long as that file is present. I that file is not present, we get this: Error 1308. Source file not found: C:\Users\Neil.Owen\Desktop\10.0.4.1157\ReadMeFirst_EN.htm. Verify that the file exists and that you can access it. That makes perfect sense. The issue is that this is not happening on upgrade. What's happening on upgrade if the readme file is missing is that the same error is being published as an Info message, and the install carries on merrily: Info 1308. Source file not found: C:\Users\Neil.Owen\Desktop\10.0.4.1157\ReadMeFirst_EN.htm. Verify that the file exists and that you can access it. There's a few ways we can work around this (either not having the file uncompressed like this or by having an action which checks for the presence of the file). However, what I'd like to understand is why MSI is turning this Error message into an Info message on upgrade. Any ideas? Thanks -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Get 100% visibility into Java/.NET code with AppDynamics Lite It's a free troubleshooting tool designed for production Get down to code-level detail for bottlenecks, with 2% overhead. Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap2 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Wix dev and regular dev best practices
We're looking at simply making WiX part of the toolkit you need to build our solutions. We've tried this with some smaller projects and it's worked really well. Developers can follow up on their own impacts, and they can tell when they've broken the install. This increases build quality and frees up install developers from the add a file, remove a file monkey-work we seem to spend 80% of our time doing. Some of the developers grumbled a bit, but it's also been taken positively by others, and everyone gets a bit more respect for their poor, abused install developers. :) In fact, the main issues are related to integrating it into our build system (which is more down to the fact that we don't want to install stuff onto our build system - we want the build to be able to xcopy install whatever it needs). On 29 May 2013 18:46, keith.doug...@statcan.gc.ca wrote: I don't know if our approach will work well long term since we are still developing all of this, but we decided we'd build front end utilities for developers to use with presets implicitly written out to wxs for them (like Manufacturer and expected directories to install to, etc.). This way in principle we could also have developers (or in your case, a build server) drop off their files and an installer build person / process can then pick them up with the front end to WIX. Keith Douglas Statistics Canada | 170 Tunney's Pasture Driveway, Ottawa ON K1A 0T6 Statistique Canada | 170, promenade Tunney's Pasture, Ottawa ON K1A 0T6 keith.doug...@statcan.gc.ca Telephone | Téléphone 613-951-4405 Facsimile | Télécopieur 613-951-1966 Government of Canada | Gouvernement du Canada -Original Message- From: Drake, David [mailto:david.dr...@wizards.com] Sent: May-29-13 1:41 PM To: General discussion for Windows Installer XML toolset. Subject: [WiX-users] Wix dev and regular dev best practices I am attempting to bring an extra layer of automation to my area of concern and have chosen to start packaging up each of our services into .msi files for easier deployment and configuration. Part of getting started is figuring out the best way to implement WIX installers into our build system without causing impact on the developers. My initial thought was to add wix projects to the various solutions we have in source control, check in all of the WIX binaries as mentioned in the WIX manual so the CruiseControl powered build system can see them. I have set a post-build step in one of their C# Projects to run Heat.exe and spit out a files.wxs file that contains all of their output, and filter it through a transform.xsl to add in the ServiceControl elements and strip out all of the useless garbage that should not be installed. The problem with this is that it's going to cause the devs to have an issue with opening the solution and having that one .wixproj project fail to open, throwing up a pop-up and somewhat disrupting their flow. Is there a way to give them just the VS2012 plugin so the .wixproj type is recognized, or should I just stay out of their solution files and find some other way to run heat to harvest their output and go on to build the .msi file? Is there some other approach that has been proven to work well when the person creating and maintaining the installer creation and deployment processes is not a direct member of the development team? Thank you, ~David Drake CES Build Engineer david.dr...@wizards.commailto:david.dr...@wizards.com -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes.
[WiX-users] Error 1308 (Source File not found) emitted as Info on upgrade
Hi, I have one MSI, with a bunch of compressed files in an embedded cab, and one readme next to the install as an uncompressed file. This file is still in the installer, it's just got the nonCompressed bit set. This is so we can update the readme right up until release with late-breaking information. This all works fine for fresh installs and upgrades, as long as that file is present. I that file is not present, we get this: Error 1308. Source file not found: C:\Users\Neil.Owen\Desktop\10.0.4.1157\ReadMeFirst_EN.htm. Verify that the file exists and that you can access it. That makes perfect sense. The issue is that this is not happening on upgrade. What's happening on upgrade if the readme file is missing is that the same error is being published as an Info message, and the install carries on merrily: Info 1308. Source file not found: C:\Users\Neil.Owen\Desktop\10.0.4.1157\ReadMeFirst_EN.htm. Verify that the file exists and that you can access it. There's a few ways we can work around this (either not having the file uncompressed like this or by having an action which checks for the presence of the file). However, what I'd like to understand is why MSI is turning this Error message into an Info message on upgrade. Any ideas? Thanks -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Wix dev and regular dev best practices
@Mark: Yep, that's what we've gone with, but we had issues getting the right set of properties to set up the paths properly because there's a number of cascading properties. Also, we had issues in that we have to do this with every .wixproj. (I guess we might create a customized .wixproj which has those changes already) Thanks On 30 May 2013 15:28, Freedman, Mark P. mark.freed...@jhuapl.edu wrote: I've recently added WiX to my continuous integration server, Team City. They key is to not have to install stuff on the build machines. WiX includes the install binaries that can be put right in your source tree. However the binaries do not include the files necessary for Custom Actions (CAs), so I had to include some extra files that come with the standard WiX developer install. http://wix.codeplex.com/releases/view/99514 Then, update your .wixproj projects to point to the relative path to your wix binaries. See the Wix tags in PropertyGroup. PropertyGroup Configuration Condition= '$(Configuration)' == '' Debug/Configuration Platform Condition= '$(Platform)' == '' x86/Platform ProductVersion3.7/ProductVersion ProjectGuidz/ProjectGuid SchemaVersion2.0/SchemaVersion OutputNameMy Installer/OutputName OutputTypePackage/OutputType WixToolPath..\..\InstallTools\wix\3.7.1224.0\/WixToolPath WixTargetsPath$(WixToolPath)Wix.targets/WixTargetsPath WixTasksPathwixtasks.dll/WixTasksPath /PropertyGroup If you're doing bootstrappers prerequisites with the GenerateBootstrapper command, you can do something similar in your project's bootstrapper to redirect them to a relative path so that the build machine doesn't need to have Visual Studio installed, or whatever puts them in the default Microsoft SDK package. GenerateBootstrapper ApplicationFile=MyInstaller.msi ApplicationName=My App BootstrapperItems=@(BootstrapperFile) ComponentsLocation=Relative CopyComponents=True OutputPath=$(OutputPath) Path=..\..\Bootstrapper / Mark Freedman -Original Message- From: John Ludlow [mailto:john.ludlow...@gmail.com] Sent: Thursday, May 30, 2013 5:53 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Wix dev and regular dev best practices We're looking at simply making WiX part of the toolkit you need to build our solutions. We've tried this with some smaller projects and it's worked really well. Developers can follow up on their own impacts, and they can tell when they've broken the install. This increases build quality and frees up install developers from the add a file, remove a file monkey-work we seem to spend 80% of our time doing. Some of the developers grumbled a bit, but it's also been taken positively by others, and everyone gets a bit more respect for their poor, abused install developers. :) In fact, the main issues are related to integrating it into our build system (which is more down to the fact that we don't want to install stuff onto our build system - we want the build to be able to xcopy install whatever it needs). On 29 May 2013 18:46, keith.doug...@statcan.gc.ca wrote: I don't know if our approach will work well long term since we are still developing all of this, but we decided we'd build front end utilities for developers to use with presets implicitly written out to wxs for them (like Manufacturer and expected directories to install to, etc.). This way in principle we could also have developers (or in your case, a build server) drop off their files and an installer build person / process can then pick them up with the front end to WIX. Keith Douglas Statistics Canada | 170 Tunney's Pasture Driveway, Ottawa ON K1A 0T6 Statistique Canada | 170, promenade Tunney's Pasture, Ottawa ON K1A 0T6 keith.doug...@statcan.gc.ca Telephone | Téléphone 613-951-4405 Facsimile | Télécopieur 613-951-1966 Government of Canada | Gouvernement du Canada -Original Message- From: Drake, David [mailto:david.dr...@wizards.com] Sent: May-29-13 1:41 PM To: General discussion for Windows Installer XML toolset. Subject: [WiX-users] Wix dev and regular dev best practices I am attempting to bring an extra layer of automation to my area of concern and have chosen to start packaging up each of our services into .msi files for easier deployment and configuration. Part of getting started is figuring out the best way to implement WIX installers into our build system without causing impact on the developers. My initial thought was to add wix projects to the various solutions we have in source control, check in all of the WIX binaries as mentioned in the WIX manual so the CruiseControl powered build system can see them. I have set a post-build step in one of their C# Projects to run Heat.exe and spit out a files.wxs file that contains all of their output, and filter it through a transform.xsl to add
[WiX-users] Recommended way of defining custom actions across multiple wxs files?
Hi, While I was looking at refactoring our wxs code, I noticed something odd. I have a structure like this File\File.wixproj File.wxs Install\Install.wixproj Product.wxs CustomAction1.wxs CustomAction2.wxs InstallExecuteSequence.wxs (Note that I'm using an over-simplified example here, I'm not actually limiting myself to 1 CA per file - that would be ludicrous. Instead, I'm grouping related CAs together. The point is that I've been defining actions in a wxs, and the sequence in another wxs). The Install.wixproj (which emits an MSI) references File.wixproj (which emits a .wixlib) and includes the componentgroup it contains in a feature - all good. However, the custom actions and sequence definition in CustomActionxxx.wxs and InstallExecuteSequence.wxs do not get imported - I just get the default InstallExecuteSequence and no CustomAction table to speak of. I know this is expected behaviour, as described in Bob's comment: http://sourceforge.net/p/wix/bugs/1457/#5b62 *For a fragment to be linked requires that something higher in the chain, starting with your Product/Merge/Patch, to refer to a **symbol in the fragment. If nothing does, the fragment is excluded at link time. The way most WiX CAs are authored, there's one fragment that contains the custom action and its InstallExecuteSequence scheduling, so a CustomActionRef will cause both to be linked in. If that's what you're doing, please re-open the bug and attach a sample so we can help.* * * Clearly I should be doing something like this instead: * * Install\Install.wixproj Product.wxs CustomAction1AndSequence.wxs CustomAction2AndSequence.wxs So this raises a couple of other questions related to best practices. How do we handle sequencing? This structure suggests that the two custom actions don't know about each other, so how we specify which comes first. If there's no dependencies between the two actions, should they both simply declare that they need to come after an action that they do depend on, say InstallFiles? What would the sequence be? Would the sequence be inconsistent? Would it give me duplicate sequence numbers (and the ICE warnings that go with them)? And if one of them does require the other, how do we handle that? Can I just reference the name in the sequencing? (I think I can - we have sequencing and CA definitions spread across multiple files now, and it works fine, so referencing CA1 from the sequence definition for CA2 would probably work as well) Also, in this case the answer might be to simply include them in the same file anyway. Finally, since the sequence is spread out over multiple wxs files, how do you get a view of the actual sequence? Is this just a case of opening orca and seeing what's in the table? Any advice would be appreciated! Thanks -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Error 1308 (Source File not found) emitted as Info on upgrade
Thanks Phil, I'll take a look when I get a chance. I have a feeling it's still in the hash table. Thanks again. On 30 May 2013 19:28, Phil Wilson phil.wil...@mvps.org wrote: Have a look at the vital setting for the file. You may find it's not vital in the Info message case. MSI File table: http://msdn.microsoft.com/en-us/library/windows/desktop/aa368596(v=vs.85).as px If the file is external and you are replscing it at the last moment make sure you don't make a file hash mistake. You don't want the hash in the MSI file to not match the actual file, so turn it off for that file unless you are fixing the MsiFileHash table when you replace the file. Phil -Original Message- From: John Ludlow [mailto:john.ludlow...@gmail.com] Sent: Thursday, May 30, 2013 6:08 AM To: General discussion for Windows Installer XML toolset. Subject: [WiX-users] Error 1308 (Source File not found) emitted as Info on upgrade Hi, I have one MSI, with a bunch of compressed files in an embedded cab, and one readme next to the install as an uncompressed file. This file is still in the installer, it's just got the nonCompressed bit set. This is so we can update the readme right up until release with late-breaking information. This all works fine for fresh installs and upgrades, as long as that file is present. I that file is not present, we get this: Error 1308. Source file not found: C:\Users\Neil.Owen\Desktop\10.0.4.1157\ReadMeFirst_EN.htm. Verify that the file exists and that you can access it. That makes perfect sense. The issue is that this is not happening on upgrade. What's happening on upgrade if the readme file is missing is that the same error is being published as an Info message, and the install carries on merrily: Info 1308. Source file not found: C:\Users\Neil.Owen\Desktop\10.0.4.1157\ReadMeFirst_EN.htm. Verify that the file exists and that you can access it. There's a few ways we can work around this (either not having the file uncompressed like this or by having an action which checks for the presence of the file). However, what I'd like to understand is why MSI is turning this Error message into an Info message on upgrade. Any ideas? Thanks -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Including UtilExtension a Fragment
I think probably using burn to chain both the JRE installer and the MSI is the best idea. I'm pretty sure the JRE installer is just a bootstrapped MSI, so including it in your MSI won't work (the nested MSI transaction issue). On 30 May 2013 21:06, Alain Forget afor...@cmu.edu wrote: Now I'm really confused. :-) So to explain a bit more, the EXE is the Java Runtime Environment installer, and the MSI is my installer. So I want to include the EXE in my MSI, and (silently) run the JRE EXE if it isn't already installed (determined by util:RegistrySearch elements), before the stuff in my installer starts getting unpacked and run. So...if you're suggesting I put my MSI in the EXE, that's not possible, because I can't (or at least don't think) I can or should put my MSI in the JRE EXE. Did you have something else in mind? Alain -Original Message- From: Wesley Manning [mailto:wmann...@dynagen.ca] Sent: May 30, 2013 16:01 To: afor...@cmu.edu; General discussion for Windows Installer XML toolset.; 'John Cooper' Subject: RE: [WiX-users] Including UtilExtension a Fragment Not if you are embedding exe in msi. The other way around maybe. -Original Message- From: Alain Forget [mailto:afor...@cmu.edu] Sent: May-30-13 4:55 PM To: 'John Cooper'; 'General discussion for Windows Installer XML toolset.' Subject: Re: [WiX-users] Including UtilExtension a Fragment Hm, I've just been using Candle and Light thus far. Since I'm now including an EXE in my MSI, I take it I now need to use Burn? If so, is there a Burn tutorial somewhere? I've been unable to find one. Alain -Original Message- From: John Cooper [mailto:jocoo...@jackhenry.com] Sent: May 30, 2013 15:39 To: afor...@cmu.edu; General discussion for Windows Installer XML toolset. Subject: RE: [WiX-users] Including UtilExtension a Fragment Do you have the Util extension added as a reference to your Burn project? -- John Merryweather Cooper Build Install Engineer - ESA Jack Henry Associates, Inc.® Shawnee Mission, KS 66227 Office: 913-341-3434 x791011 jocoo...@jackhenry.com www.jackhenry.com -Original Message- From: Alain Forget [mailto:afor...@cmu.edu] Sent: Thursday, May 30, 2013 2:27 PM To: wix-users@lists.sourceforge.net Subject: [WiX-users] Including UtilExtension a Fragment I can't figure out why Candle doesn't seem to find the RegistrySearch element in the util namespace, as it throws this error: Fragment element contains an unhandled extension element 'util:RegistrySearch'. Please ensure that the extension for elements in the ' http://schemas.microsoft. com/wix/UtilExtension' namespace has been provided. Maybe I'm not using the Fragment as it is intended? Any advice would be appreciated. This is what my source looks like: Wix xmlns='http://schemas.microsoft.com/wix/2006/wi' xmlns:util= http://schemas.microsoft.com/wix/UtilExtension; Fragment util:RegistrySearch Id=Java7FamilyVersion Root=HKLM Key=SOFTWARE\JavaSoft\Java Runtime Environment Value=Java7FamilyVersion Variable=Java7FamilyVersion / util:RegistrySearch Root=HKLM Key=SOFTWARE\JavaSoft\Java Runtime Environment\[Java7FamilyVersion]\MSI Value=PRODUCTVERSION Variable=JavaProductVersion After=Java7FamilyVersion Condition=Java7FamilyVersion / PackageGroup Id=Java7Runtime ExePackage Id=Java7Runtime DisplayName=Java Runtime Version 7 Cache=no Compressed=yes PerMachine=yes Permanent=yes Vital=yes Name=lib\jre-7u21-windows-i586.exe SourceFile=\lib\jre-7u21-windows-i586.exe InstallCommand=/s ADDLOCAL=jrecore IEXPLORER=1 MOZILLA=1 JAVAUPDATE=0 JU=0 SYSTRAY=0 AUTOUPDATECHECK=0 REBOOT=Suppress /L*v quot;[WixBundleLog_Java7Runtime]quot; DetectCondition=Java7FamilyVersion AND (JavaProductVersion gt;= v7.0.210) /ExePackage /PackageGroup /Fragment Product... Alain -Original Message- From: Alain Forget [mailto:afor...@cmu.edu] Sent: May 30, 2013 14:17 To: 'Neil Sleightholm' Subject: RE: [WiX-users] Download and install Java Oh interesting, so I don't even need to define WixBundleLog_Java7Runtime? Another issue: candle couldn't recognise the util prefix for the util:RegistrySearch elements, so I added xmlns:util= http://schemas.microsoft.com/wix/UtilExtension; to my top-level Wix element, but I'm now getting the following candle error: Fragment element contains an unhandled extension element 'util:RegistrySearch'. Please ensure that the extension
Re: [WiX-users] newbie: how to reference variables ? (the doc is confusing)
I think where you're getting confused is that there are more than one type of variable in WiX. Firstly, there are preprocessor variables and condition, which are referenced like this: $(var.VariableName) !(var.LateBoundVariableName) $(env.EnvironmentVariableName) !(loc.StringID) These are available at build time and are used in things like string paths and to conditionally include fragments of code based on your build configurations. (Check out this link: http://wix.sourceforge.net/manual-wix3/preprocessor.htm) Then there are the MSI properties and conditions, which use a different syntax, because it's defined by MSI and not WiX. These are avaiable at runtime and are used to perform logic in your install - conditionally performing an action based on the environment or feature selection, getting information, controlling your installation directories and stuff like that. (Check out this link: http://msdn.microsoft.com/en-us/library/windows/desktop/aa368012(v=vs.85).aspx ) What you have there is an MSI condition, which looks like it's based on MainFeature being installed. To break this down: (MainFeature = 3) FeatureName gets the requested state of the feature. MainFeature = 3 means if MainFeature is selected for installation, return true. AND NOT Pretty standard boolean logic - if the left hand side is true, but the right hand side is false, this will return true. (!MainFeature = 3)] !FeatureName gets the *current state* of the feature, rather than the requested state. This means if MainFeature is *currently installed* for installation, return true. Put it all together, and what you get is this: If MainFeature is selected for installation, and it's NOT currently installed, return true. Hope that helps On 29 May 2013 09:46, Benjamin Mayrargue benja...@vapolia.fr wrote: Hi all, i have a noob question. In this snippet there is a and a ! before the variable MainFeature. what does that mean ? Condition![CDATA[(MainFeature = 3) AND NOT (!MainFeature = 3)]]/Condition In the wix chm, i found the list of Wix built-in variables. But i'm unable to reference them, either in the bundle, or in my managed bootstrapper. What is the correct way to make them available ? (i'm using only a bundle). thks :) -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] newbie: how to reference variables ? (the doc is confusing)
Well, the bundle will *take any MSIs or other packages specified in your Chain element** *and bootstrap them. It doesn't exactly create an MSI itself. It might be best if you give more details about what you're trying to achieve, and where you're trying to use the above Condition element? On 29 May 2013 11:36, Benjamin Mayrargue benja...@vapolia.fr wrote: 100% understood ! This means a 'bundle' creates a msi bootstrapped in an exe. B. 2013/5/29 John Ludlow john.ludlow...@gmail.com I think where you're getting confused is that there are more than one type of variable in WiX. Firstly, there are preprocessor variables and condition, which are referenced like this: $(var.VariableName) !(var.LateBoundVariableName) $(env.EnvironmentVariableName) !(loc.StringID) These are available at build time and are used in things like string paths and to conditionally include fragments of code based on your build configurations. (Check out this link: http://wix.sourceforge.net/manual-wix3/preprocessor.htm) Then there are the MSI properties and conditions, which use a different syntax, because it's defined by MSI and not WiX. These are avaiable at runtime and are used to perform logic in your install - conditionally performing an action based on the environment or feature selection, getting information, controlling your installation directories and stuff like that. (Check out this link: http://msdn.microsoft.com/en-us/library/windows/desktop/aa368012(v=vs.85).aspx ) What you have there is an MSI condition, which looks like it's based on MainFeature being installed. To break this down: (MainFeature = 3) FeatureName gets the requested state of the feature. MainFeature = 3 means if MainFeature is selected for installation, return true. AND NOT Pretty standard boolean logic - if the left hand side is true, but the right hand side is false, this will return true. (!MainFeature = 3)] !FeatureName gets the *current state* of the feature, rather than the requested state. This means if MainFeature is *currently installed* for installation, return true. Put it all together, and what you get is this: If MainFeature is selected for installation, and it's NOT currently installed, return true. Hope that helps On 29 May 2013 09:46, Benjamin Mayrargue benja...@vapolia.fr wrote: Hi all, i have a noob question. In this snippet there is a and a ! before the variable MainFeature. what does that mean ? Condition![CDATA[(MainFeature = 3) AND NOT (!MainFeature = 3)]]/Condition In the wix chm, i found the list of Wix built-in variables. But i'm unable to reference them, either in the bundle, or in my managed bootstrapper. What is the correct way to make them available ? (i'm using only a bundle). thks :) -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu
Re: [WiX-users] (no subject)
Your question isn't entirely clear - do you want to have a text box for an IP address in your install UI (which would depend on whether it's Wix/MSI-based or Burn-based), or do you just want to include a configuration file in your install to be installed along with your app? Or something else...? On 23 May 2013 08:51, Chaitanya Sanapala [PC-BLR-DEV] chaita...@pointcross.com wrote: Hi, I want to insert an IP address or some type of information from my client when my installation starts. the client has to insert the information in the UI or xml\txt file.that should be able to insert in the Wix file. How to do that Thanks in advance, sandeep. -- Try New Relic Now We'll Send You this Cool Shirt New Relic is the only SaaS-based application performance monitoring service that delivers powerful full stack analytics. Optimize and monitor your browser, app, servers with just a few lines of code. Try New Relic and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Try New Relic Now We'll Send You this Cool Shirt New Relic is the only SaaS-based application performance monitoring service that delivers powerful full stack analytics. Optimize and monitor your browser, app, servers with just a few lines of code. Try New Relic and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] (no subject)
The simplest method is to use a text edit control: Control Id=myEdit Type=Edit Property=IP_ADDRESS Height=17 Width= 100 X=50 Y=50 Indirect=yes Text=[IP_ADDRESS]/ You can also use the MaskedEdit control, with PIDTemplate set to the format for an IP address. This will allow you to have a formatted control that will only accept IP addresses. See the doc for that type of control: http://msdn.microsoft.com/en-gb/library/windows/desktop/aa369797(v=vs.85).aspx. However, this can cause issues if you have a product key dialog in your install. This also has the downside that the user wouldn't be able to enter a URL or DNS alias, even where those would resolve to the same IP address. Once you have the value in a property (I'm using the IP_ADDRESS property above) Generally speaking, though, think about whether your install should be handling this. If this is a UI application, a better user experience can usually be achieved by the application asking for this information at start-time, rather than the install trying to do it. You may also find that you have to duplicate more stuff because your application still needs that UI because the address might change. -- Try New Relic Now We'll Send You this Cool Shirt New Relic is the only SaaS-based application performance monitoring service that delivers powerful full stack analytics. Optimize and monitor your browser, app, servers with just a few lines of code. Try New Relic and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Major upgrade using bootstrapper issue -HELP!!
Do you have any duplicate GUIDs in your installer? Also, is the installation path changing when you do the upgrade? (by which I mean, do those files end up in a different folder on the target machine?) On 23 May 2013 15:37, Dave Moss davidm...@omprompt.com wrote: Just for a bit of extra information if I run the bootstrapper install and then run just the application msi for the upgrade it works fine so it seems to be an issue from running the upgrade through the bootstrapper. Jacob, the keypaths and component id's remain the same. Dave Moss Tactical Team Lead OmPrompt +44 (0)1235 436014 Direct davidm...@omprompt.com www.omprompt.com OmPrompt Limited is registered in England Wales, registration No. 4452522, with registered offices at 67 Innovation Drive, Milton Park, Abingdon, Oxfordshire. OX14 4RQ. UK. VAT No. 821339546. -Original Message- From: Hoover, Jacob [mailto:jacob.hoo...@greenheck.com] Sent: 23 May 2013 15:32 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Major upgrade using bootstrapper issue -HELP!! Is your key path and/or component ids changing with each new installer? Open up two versions of your installer in Orca, and for any given file that isn't there after the major upgrade compare the component ID's. -Original Message- From: Dave Moss [mailto:davidm...@omprompt.com] Sent: Thursday, May 23, 2013 4:21 AM To: wix-users@lists.sourceforge.net Subject: [WiX-users] Major upgrade using bootstrapper issue -HELP!! Hi, I am pretty new to the world of WiX but have found it to be a very useful tool. I am having the following issue however and after 2 days of googling it is driving me nuts. I have a bootstrapper that install .net 4.0 if required and then installs my msipackage. I opted for the major upgrade everytime when making changes to the files installed. Each of my executable files have their version number updated to the current revision number in SVN. When I install my application the first time it installs fine and all the services are started and installed and all the required files are there. When I run the next version of the installer (so a major upgrade) it seems to be installing the new msi and then uninstalling the old one. At this point all that is left on my machine is the service executables and nothing else, all the other files have been removed including the .exe.config files rendering the application useless. Any ideas what I am doing wrong, its driving me crazy!!! Here is my bundle.wxs ?xml version=1.0 encoding=UTF-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; Bundle Name=Document Converters Version=$(var.Version) Manufacturer=company name UpgradeCode=UPGRADE-GUID Condition=((VersionNT = v5.1) AND (ServicePackLevel = 3)) OR ((VersionNT = v5.2) AND (ServicePackLevel = 2)) OR (VersionNT = v6.0) BootstrapperApplicationRef Id=WixStandardBootstrapperApplication.HyperlinkLicense / WixVariable Id=WixStdbaLogo Value=Resource\logo.png / WixVariable Id=WixStdbaLicenseUrl Value= / Variable Name=InstallFolder Type=string Value=[WindowsVolume]company name\application / Variable Name=LaunchTarget Value=[InstallFolder]\application.exe/ Chain PackageGroupRef Id=NetFx40Redist / RollbackBoundary / MsiPackage Id=WIXConverterInstaller Compressed=yes SourceFile=$(var.WIXConverterInstaller.TargetPath) Vital=yes MsiProperty Name=INSTALLFOLDER Value=[InstallFolder] / /MsiPackage /Chain /Bundle /Wix Here is my bootstrapper project file. ?xml version=1.0 encoding=utf-8? Project ToolsVersion=4.0 DefaultTargets=Build xmlns= http://schemas.microsoft.com/developer/msbuild/2003; PropertyGroup Configuration Condition= '$(Configuration)' == '' Debug/Configuration Platform Condition= '$(Platform)' == '' x86/Platform ProductVersion3.7/ProductVersion ProjectGuid{7ae67f4b-d014-4008-9373-35cb5aeffb36}/ProjectGuid SchemaVersion2.0/SchemaVersion OutputNameDocumentConverterInstallerV2.8-B$(BuildNo)/OutputName OutputTypeBundle/OutputType WixTargetsPath Condition= '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets/WixTargetsPath WixTargetsPath Condition= '$(WixTargetsPath)' == '' $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets/WixTargetsPath NameDocumentConverterInstaller/Name Version /Version BuildNo Condition= '$(BuildNo)' == ''1/BuildNo /PropertyGroup PropertyGroup Condition= '$(Configuration)|$(Platform)' == 'Debug|x86' OutputPathbin\$(Configuration)\/OutputPath IntermediateOutputPathobj\$(Configuration)\/IntermediateOutputPath DefineConstantsDebug/DefineConstants /PropertyGroup PropertyGroup Condition= '$(Configuration)|$(Platform)' == 'Release|x86'
Re: [WiX-users] Writing a WiX tutorial
Hi Natalie, Have you seen the tutorial at http://wix.tramontana.co.hu/? You may want to emulate this, since it's a good tutorial for general use, but you may want one tailored to your team and your product. You should include topics on things that you use (for example, Burn, patching and early REPs), as well as WiX/MSI conventions and best practices. Also describe how your code is organised and how you'd build it. On 20 May 2013 09:30, Natalie Carr natalie.c...@measuresoft.com wrote: Hi, I have been asked to write a WiX tutorial for my colleagues to take over my role when I leave. Has anyone written anything like this that they would be willing to help me out with? I am using the WiX tutorial online but would like your opinions on what I should include. Thanks Natalie -- AlienVault Unified Security Management (USM) platform delivers complete security visibility with the essential security capabilities. Easily and efficiently configure, manage, and operate all of your security controls from a single console and one unified framework. Download a free trial. http://p.sf.net/sfu/alienvault_d2d ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- AlienVault Unified Security Management (USM) platform delivers complete security visibility with the essential security capabilities. Easily and efficiently configure, manage, and operate all of your security controls from a single console and one unified framework. Download a free trial. http://p.sf.net/sfu/alienvault_d2d ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Getting install path from Wix Custom Action
This is probably because your CA is scheduled as immediate, rather than deferred. You need to set Execute=deferred, and Impersonate=no on your CustomAction element. However, this presents a problem - deferred CAs do not get access to properties. Instead, you need to use the CustomActionData special property. You set a property with the same name as your action (in this case, SetEfxZlibLibraryAction) to the data that you want to make available to the custom action. The DTF method (session.CustomActionData) for this in C# has some special parsing rules which can be used to pass in multiple elements of data. On 20 May 2013 17:55, Freedman, Mark P. mark.freed...@jhuapl.edu wrote: Turns out the attribute I was trying to use was INSTALLFOLDER, not INSTALLDIR, as specified in my Product.wxs. So now, that resolves to the path I expect. However, I'm having a new issue. The custom action is trying to work on a file that's expeted to be present in my INSTALLFOLDER. I put some MessageBoxes in the CA for debugging purposes. When the CA is firing, the files havne't been copied over to the install directory yet. I'd think that my files would be there at the time since the action isn't firing until after InstallFiles. What other options do I have? Also, my custom action appears to be firing when I uninstall the program. Again, this is confusing to me given that the action isn't firing until after InstallFiles. Thanks. Mark Freedman -Original Message- From: John Cooper [mailto:jocoo...@jackhenry.com] Sent: Monday, May 20, 2013 12:49 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Getting install path from Wix Custom Action First off, scheduling. The values of Directory properties (including one like INSTALLDIR), aren't going to be meaningful until after CostFinalize. Since you're running in the InstallExecSequence after InstallFiles, that's not it. However, you should be able to resolve INSTALLDIR like any other public property. If session[INSTALLDIR] resolves to nothing, I'm thinking you haven't saved/restored this property. Is this running in a Repair or Upgrade? -- John Merryweather Cooper Build Install Engineer - ESA Jack Henry Associates, Inc.® Shawnee Mission, KS 66227 Office: 913-341-3434 x791011 jocoo...@jackhenry.com www.jackhenry.com -Original Message- From: Freedman, Mark P. [mailto:mark.freed...@jhuapl.edu] Sent: Monday, May 20, 2013 11:30 AM To: wix-users@lists.sourceforge.net Subject: [WiX-users] Getting install path from Wix Custom Action I have a custom action and am trying to access the Install Directory, or Target path (the base folder that the user chooses to install to). Within my Action, I tried pulling it from Session. TARGETDIR maps to C:\, despite installing it to program files, and INSTALLDIR yields empty stirng. What am I missing? I also tried passing the INSTALLDIR in the CustomAction tag with the Directory attribute, but it comes back saying that it can't be something in brackets. [CustomAction] public static ActionResult SetEfxZlibLibrary(Session session) { session.Log(Begin CA); string installDirectory = session[INSTALLDIR]; // } ?xml version=1.0 encoding=UTF-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; ?include Includes.wxi ? Fragment CustomAction Id='SetEfxZlibLibraryAction' BinaryKey='CustomActionBinary' DllEntry='SetEfxZlibLibrary' Execute='immediate' Return='check'/ Binary Id=CustomActionBinary SourceFile=$(var.CustomInstallActionsFile)/ /Fragment /Wix Thanks, Mark Freedman -- AlienVault Unified Security Management (USM) platform delivers complete security visibility with the essential security capabilities. Easily and efficiently configure, manage, and operate all of your security controls from a single console and one unified framework. Download a free trial. http://p.sf.net/sfu/alienvault_d2d ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users NOTICE: This electronic mail message and any files transmitted with it are intended exclusively for the individual or entity to which it is addressed. The message, together with any attachment, may contain confidential and/or privileged information. Any unauthorized review, use, printing, saving, copying, disclosure or distribution is strictly prohibited. If you have received this message in error, please immediately advise the sender by reply email and delete all copies. -- AlienVault Unified Security Management (USM) platform delivers complete security visibility with the essential
Re: [WiX-users] Getting install path from Wix Custom Action
You should be able to do something along these lines: foreach (var k in session.CustomActionData.Keys) { session.Log(k + = + session.CustomActionData[k]); } But you would have to have set the CA data property for that custom action, I think. On 20 May 2013 18:26, Freedman, Mark P. mark.freed...@jhuapl.edu wrote: The execute attribute on Custom action lets you choose immediate, deferred, etc. An issue I'm seeing in the installer is that accessing a Session attribute is only allowed if it's immediate execution. So this makes me think it has to be immediate, but must be after a step that's after InstallFiles, since the files aren't actually installed. Is there a set list of the action steps? Exception thrown by custom action: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. --- Microsoft.Deployment.WindowsInstaller.InstallerException: Cannot access session details from a non-immediate custom action at Microsoft.Deployment.WindowsInstaller.Session.ValidateSessionAccess() at Microsoft.Deployment.WindowsInstaller.Session.get_Item(String property) at CustomInstallActions.CustomActions.SetEfxZlibLibrary(Session session) --- End of inner exception stack trace --- at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object arguments, SignatureStruct sig, MethodAttributes methodAttributes, RuntimeType typeOwner) at System.RuntimeMethodHandle.InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object arguments, Signature sig, MethodAttributes methodAttributes, RuntimeType typeOwner) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object parameters, CultureInfo culture, Boolean skipVisibilityChecks) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object parameters, CultureInfo culture) at Microsoft.Deployment.WindowsInstaller.CustomActionProxy.InvokeCustomAction(Int32 sessionHandle, String entryPoint, IntPtr remotingDelegatePtr) When I changed the Action to execute After=InstallFinalize, I was able to access the session details and the files were in the install directory. However, my action is failing to do what it's trying to do because of permissions. The action is attempting to make a copy of a file with a new name based on if the system is 32/64. I'm guessing the step I'm in in the installer isn't a step where it has permissions. I'm not sure where I should be doing these actions, I was able to get these to function in a Visual Studio deployment project custom action without much grief. Mark Freedman -Original Message- From: Phil Wilson [mailto:phil.wil...@mvps.org] Sent: Monday, May 20, 2013 1:18 PM To: 'General discussion for Windows Installer XML toolset.' Subject: Re: [WiX-users] Getting install path from Wix Custom Action The execute sequence runs twice, in custom action terminology the first is immediate, when Windows is writing a script to do the install; the second time it's deferred when applied to custom actions, when the system actually gets changed. That means you can be after InstallFiles in an immediate custom action and the files haven't been copied yet. You need immediate=no, I think that's the syntax. Custom actions have conditions. A typical condition to cause a CA to run only at install time is (case sensitive) Not Installed Phil -Original Message- From: Freedman, Mark P. [mailto:mark.freed...@jhuapl.edu] Sent: Monday, May 20, 2013 9:55 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Getting install path from Wix Custom Action Turns out the attribute I was trying to use was INSTALLFOLDER, not INSTALLDIR, as specified in my Product.wxs. So now, that resolves to the path I expect. However, I'm having a new issue. The custom action is trying to work on a file that's expeted to be present in my INSTALLFOLDER. I put some MessageBoxes in the CA for debugging purposes. When the CA is firing, the files havne't been copied over to the install directory yet. I'd think that my files would be there at the time since the action isn't firing until after InstallFiles. What other options do I have? Also, my custom action appears to be firing when I uninstall the program. Again, this is confusing to me given that the action isn't firing until after InstallFiles. Thanks. Mark Freedman -Original Message- From: John Cooper [mailto:jocoo...@jackhenry.com] Sent: Monday, May 20, 2013 12:49 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Getting install path from Wix Custom Action First off, scheduling. The values of Directory properties (including one like INSTALLDIR), aren't going to be meaningful until after CostFinalize. Since you're running in the InstallExecSequence after
Re: [WiX-users] Creating patches
I don't think the version number of a binary is taken into account when analysing differences for byte-level patches. Try setting WholeFilesOnly=yes ( http://wix.sourceforge.net/manual-wix3/wix_xsd_patchcreation.htm). On 2 May 2013 10:31, Thomas Due t...@scanvaegt.dk wrote: Hello, I am trying to grasp the concept of minor and small upgrades, but I am having some trouble with getting it to work. First of all, it doesn't seem to work at all with 3.7. I have downgraded my WiX to 3.5, and there something happens at least, but my msp seems to be empty when I examine it with instead ( http://www.instedit.com/). A bit about what I do: I have a fairly complex installer with a couple of hundred files total, divided among 4 features. I build this with TeamCity, and I have two separate installers (no real changes, except for the version nummer - 1.2.0.22679 and 1.2.5.22754). I imagine that this should be enough to generate something. I have a build script, a simple batch file, which executes the four steps described in both the WiX doc and Nick Ramirez' book. My patch.wxs then includes a couple of file components, as I want these replaces (mind you, I am still in the testing phase, trying to understand the concept). First my build script: === %wixdir%bin\torch.exe -p -xi %oldmsi% %newmsi% -v -out diff.wixmst %wixdir%bin\candle.exe -v Patch.wxs %wixdir%bin\Light.exe -v Patch.wixobj -out patch.wixmsp %wixdir%bin\pyro.exe -v patch.wixmsp -out patch.msp -t Patch diff.wixmst %oldmsi% and %newmsi are complete paths to the wixpdb files for respectively old and new installer. Then my Patch.wsx: === ?xml version=1.0 encoding=utf-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; ?include BuildVariables.wxi ? Patch AllowRemoval=yes Classification=Update Manufacturer=$(var.Manufacturer) Description=Patch DisplayName=Patch $(var.CurVersion) Media Id=1000 Cabinet=´Patch.cab EmbedCab=yes PatchBaseline Id=Patch / /Media PatchFamily Id=ScanXNETPatchFamily Version=$(var.CurVersion) Supersede=yes ComponentRef Id=ComponentCommonExtensions / ComponentRef Id=ComponentMainClient/ /PatchFamily /Patch /Wix BuildVariables.wxi is simply a number of preprocessor variables, which is shared with the installer project. Now, as I said, with 3.7 I get this result: Updating file information. Creating cabinet files. There will be '8' threads used to produce CAB files. Patch.wxs(20) : warning PYRO1079 : The cabinet 'ïPatch.cab' does not contain any files. If this patch contains no files, this warning can likely be safely ignored. Otherwise, try passing -p to torch.exe when first building the transforms, or add a ComponentRef to your PatchFamily authoring to pull changed files into the cabinet. Creating cabinet '\Local\Temp\kvov1bbk\#ïPatch.cab'. Generating database. diff.wixmst : error PYRO0227 : The transform being built did not contain any differences so it could not be created. Which is probably an indication of what is actually wrong. With 3.5 I get an empty msp. What am I doing wrong? -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Uninstall Order [P]
It would be interesting, but I'm struggling to imagine out how the syntax would work in your .wxs code if you were able to override this behaviour. You could have two integer attributes on each package (one for install order and one for uninstall order) but I bet that would be hard to maintain if you, say, inject a new install into the sequence, and what would be the behaviour if you specify one and not the other? In the stated use case, I would say that adding a ServiceControl record to the SQL MSI (to stop the service when this MSI is removed) is the easiest way to handle this. On 2 May 2013 16:30, Rob Mensching r...@robmensching.com wrote: Definitely is, yes. Tons of people would be complaining if it wasn't in that order. You'd essentially remove perquisites then try to remove application. Not likely to work out well in many cases. smile/ On Thu, May 2, 2013 at 8:25 AM, Nick Miller nmil...@livetechnology.com wrote: Seems to be, yes. -Original Message- From: Steven Ogilvie [mailto:steven.ogil...@titus.com] Sent: Thursday, May 02, 2013 11:21 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Uninstall Order [P] Classification: Public If I am not mistaken it is FILO (first in, last out) order? -Original Message- From: Nick Miller [mailto:nmil...@livetechnology.com] Sent: May-02-13 11:11 AM To: General discussion for Windows Installer XML toolset. ( wix-users@lists.sourceforge.net) Subject: [WiX-users] Uninstall Order Hi All, I have another question for you guys. Is there any way to specify the uninstall order in my bootstrappers chain? The reason I ask, is because I have two MSI's, the first one installs the application, and the second installs the sql data. There is a service that runs which accesses the SQL databases created by the second MSI. The problem: when I uninstall, it tries to remove the SQL MSI first, and fails because the databases are in use by the service. I would like bundle to uninstall in the same order that it installed. Is this possible? Thanks, Nick -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users This message has been marked as Public by Steven Ogilvie on May-02-13 11:21:11 AM. The above classification labels were added to the message by TITUS Message Classification. For more information visit www.titus.com. -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with 2% overhead Download for free and get started troubleshooting in minutes.
Re: [WiX-users] Set Directory @ Runtime
You probably have the action sequenced incorrectly. Make sure it comes after CostFinalize, because it's only at this point that the install understands the parent-child relationship between the directories. Also, read this to see whether the issues described apply to you: http://blogs.msdn.com/b/heaths/archive/2006/06/14/be-careful-or-even-avoid-using-type-35-custom-actions.aspx On 23 April 2013 06:00, yogesh bandiwadekar yogesh.bandiwade...@gmail.comwrote: Hi All Below shown is my directory structre. Directory Id=TARGETDIR Name=SourceDir Directory Id =DIRVMSOS Name=VMSOS Directory Id=DIR_VMSOS_CONFIG Name=Config / Directory Id=DIR_VMSOS_CONFIG2 Name=Config2/ Directory Id=DIR_VMSOS_LICENCE Name=License/ Directory Id=DIR_VMSOS_USERRIGHTS Name=UserRights Directory Id=DIR_SHARED Name=Shared / /Directory /Directory Directory Id=ProgramFilesFolder Directory Id=DIR_PRODUCT_SYSLOGD Name=Syslogd Directory Id=DIR_PRODUCT_SYS_CUSTOM Name=Customize/ /Directory /Directory /Directory I am changing DIRVMSOS Dynamically with type 35 custom action. This custom action only changes DIRVMSOS value not the child directory value. for example I set DIRVMSOS =d:\temp it get set to d:\temp but child directory points to defalut location that is c:\VMSOS\Config, c:\VMSOS\Config2, c:\VMSOS\License Can anybody tell me what is wrong in it? What do i need to do for this? Thanks Yogesh -- Try New Relic Now We'll Send You this Cool Shirt New Relic is the only SaaS-based application performance monitoring service that delivers powerful full stack analytics. Optimize and monitor your browser, app, servers with just a few lines of code. Try New Relic and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Try New Relic Now We'll Send You this Cool Shirt New Relic is the only SaaS-based application performance monitoring service that delivers powerful full stack analytics. Optimize and monitor your browser, app, servers with just a few lines of code. Try New Relic and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Why in Preprocessor the Not Equal To is != while in conditional string is .
is also the syntax in Visual Basic, and VB / VBA has always had strong ties to Office, which is where MSI originated from IIRC. On 18 April 2013 13:35, Hans ter Horst hoshis...@gmail.com wrote: Thanks, I think I have it working! On Thu, Apr 18, 2013 at 2:13 PM, Alain Forget afor...@cmu.edu wrote: is the MySQL (and SQL in general?) not equal to, so maybe that's where it came from? -Original Message- From: Pally Sandher [mailto:pally.sand...@iesve.com] Sent: April 18, 2013 06:42 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Why in Preprocessor the Not Equal To is != while in conditional string is . Because the WiX team wrote the WiX pre-processor syntax kept it to regularly accepted coding standards (hence != for 'not equal to' as per every other modern programming language) while the Conditional Statement syntax was written by the Windows Installer team back in the mists of time? Palbinder Sandher Software Platform Engineer T: +44 (0) 141 945 8500 F: +44 (0) 141 945 8501 http://www.iesve.com **Design, Simulate + Innovate with the Virtual Environment** Integrated Environmental Solutions Limited. Registered in Scotland No. SC151456 Registered Office - Helix Building, West Of Scotland Science Park, Glasgow G20 0SP Email Disclaimer -Original Message- From: uni [mailto:unigauld...@gmail.com] Sent: 18 April 2013 06:08 To: wix-users@lists.sourceforge.net Subject: [WiX-users] Why in Preprocessor the Not Equal To is != while in conditional string is . It is not very intuitive. I first write: ?if $(var.CurrentVersion)$(var.MinimumVersion)? and it says: error CNDL0162: An illegal number was found in the expression '$(var.CurrentVersion)$(var.MinimumVersion)'. -- Precog is a next-generation analytics platform capable of advanced analytics on semi-structured data. The platform includes APIs for building apps and a phenomenal toolset for data science. Developers can use our toolset for easy data analysis visualization. Get a free account! http://www2.precog.com/precogplatform/slashdotnewsletter ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Precog is a next-generation analytics platform capable of advanced analytics on semi-structured data. The platform includes APIs for building apps and a phenomenal toolset for data science. Developers can use our toolset for easy data analysis visualization. Get a free account! http://www2.precog.com/precogplatform/slashdotnewsletter ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Precog is a next-generation analytics platform capable of advanced analytics on semi-structured data. The platform includes APIs for building apps and a phenomenal toolset for data science. Developers can use our toolset for easy data analysis visualization. Get a free account! http://www2.precog.com/precogplatform/slashdotnewsletter ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- http://monochrome.me.uk/blog/ -- Precog is a next-generation analytics platform capable of advanced analytics on semi-structured data. The platform includes APIs for building apps and a phenomenal toolset for data science. Developers can use our toolset for easy data analysis visualization. Get a free account! http://www2.precog.com/precogplatform/slashdotnewsletter ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Precog is a next-generation analytics platform capable of advanced analytics on semi-structured data. The platform includes APIs for building apps and a phenomenal toolset for data science. Developers can use our toolset for easy data analysis visualization. Get a free account! http://www2.precog.com/precogplatform/slashdotnewsletter ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
[WiX-users] Custom Managed Bootstrapper Application Host behaviour
Hi, I've been looking at developing a custom managed bootstrapper application, based on the examples in the following articles: http://wrightthisblog.blogspot.co.uk/2013/01/part-1-of-writing-your-own-net-based.html http://bryanpjohnston.com/2012/09/28/custom-wix-managed-bootstrapper-application/ http://blogs.msdn.com/b/heaths/archive/2011/10/28/introducing-managed-bootstrapper-applications.aspx These seem to use the ManagedBootstrapperApplicationHost, which does a few things around checking for and installing .NET. I'd like to know if I can customize this behaviour (or perhaps even remove it). My understanding of how this works is that there are actually two bootstrappers - an unmanaged one which checks for .NET, and installs it if necessary (but is generally hidden from the developer), and a managed one which is the actual install. This has caused some concerns amongst our team. One of these concerns was the slightly more painful debugging experience, because the process which would get launched is not the 'real' process which we want to debug. There are tricks you can use (Heath Stewart described a way of setting up Global Flags to first break into the first one, F5 to continue, then break into the managed code) but it seemed like it would be simpler if the bootstrapper project could just kick out the managed bootstrapper output on its own without the unmanaged bootstrapper getting in the way (at least for debugging purposes). The second concern was whether we can customize the unmanaged bootstrapper at all, changing the logo, descriptive text, and perhaps also changing the action to show an error rather than installing .NET automatically. Are these things possible? I was thinking that we could build a WixStdBA bootstrapper which calls our managed bootstrapper. Thanks John -- Own the Future-Intel(R) Level Up Game Demo Contest 2013 Rise to greatness in Intel's independent game demo contest. Compete for recognition, cash, and the chance to get your game on Steam. $5K grand prize plus 10 genre and skill prizes. Submit your demo by 6/6/13. http://altfarm.mediaplex.com/ad/ck/12124-176961-30367-2 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Custom Managed Bootstrapper Application Host behaviour
Forgot to mention - I'm using WiX 3.6 On 2 April 2013 11:59, John Ludlow john.ludlow...@gmail.com wrote: Hi, I've been looking at developing a custom managed bootstrapper application, based on the examples in the following articles: http://wrightthisblog.blogspot.co.uk/2013/01/part-1-of-writing-your-own-net-based.html http://bryanpjohnston.com/2012/09/28/custom-wix-managed-bootstrapper-application/ http://blogs.msdn.com/b/heaths/archive/2011/10/28/introducing-managed-bootstrapper-applications.aspx These seem to use the ManagedBootstrapperApplicationHost, which does a few things around checking for and installing .NET. I'd like to know if I can customize this behaviour (or perhaps even remove it). My understanding of how this works is that there are actually two bootstrappers - an unmanaged one which checks for .NET, and installs it if necessary (but is generally hidden from the developer), and a managed one which is the actual install. This has caused some concerns amongst our team. One of these concerns was the slightly more painful debugging experience, because the process which would get launched is not the 'real' process which we want to debug. There are tricks you can use (Heath Stewart described a way of setting up Global Flags to first break into the first one, F5 to continue, then break into the managed code) but it seemed like it would be simpler if the bootstrapper project could just kick out the managed bootstrapper output on its own without the unmanaged bootstrapper getting in the way (at least for debugging purposes). The second concern was whether we can customize the unmanaged bootstrapper at all, changing the logo, descriptive text, and perhaps also changing the action to show an error rather than installing .NET automatically. Are these things possible? I was thinking that we could build a WixStdBA bootstrapper which calls our managed bootstrapper. Thanks John -- Own the Future-Intel(R) Level Up Game Demo Contest 2013 Rise to greatness in Intel's independent game demo contest. Compete for recognition, cash, and the chance to get your game on Steam. $5K grand prize plus 10 genre and skill prizes. Submit your demo by 6/6/13. http://altfarm.mediaplex.com/ad/ck/12124-176961-30367-2 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Custom Managed Bootstrapper Application Host behaviour
Hi Rob, Thanks for clearing up my confusion - I think I have a better understanding of how it works now, but I do have a couple of follow-up questions: Re debugging, when you say that there are two processes if elevation is required, is this affected by whether UAC is enabled (it's not enabled on my box) or is it affected by whether the embedded packages are specified as PerMachine / ALLUSERS=2? Also, does bitness affect this at all, such as debugging a bootstrapper that contains x86 MSIs? 2. I thought it was probably the same mechanism, but all the examples I found basically used the same code. If setting the usual properties works in the same way as for the standard BA, then I think that would serve our needs. Thanks! John On 2 April 2013 14:30, Rob Mensching r...@robmensching.com wrote: 1. Debugging - there are two *Bootstrapper Applications* (the .dlls that get loaded by the engine to drive the user experience) but there is still only one executable (one engine). If the managed BA cannot be loaded the host tells the engine to fallback and load the mbapreq BA instead to get NETFX installed. If that happens without a restart then the mbapreq says to go load the managed BA. That all happens in the same process. 2. Debugging - you will see two executables running when elevation is required. If you start the process elevated, you'll immediately see the user mode process executable get created. *That* makes debugging harder but if you debug from an unelevated process debugging is very straight forward. 3. Customize - the mbapreq is just the wixstdba with a tiny bit of different internal logic (like reload mba host when complete instead of close when complete). That means all the customizations you can do to wixstdba, you can do to the mbapreq. On Tue, Apr 2, 2013 at 4:08 AM, John Ludlow john.ludlow...@gmail.com wrote: Forgot to mention - I'm using WiX 3.6 On 2 April 2013 11:59, John Ludlow john.ludlow...@gmail.com wrote: Hi, I've been looking at developing a custom managed bootstrapper application, based on the examples in the following articles: http://wrightthisblog.blogspot.co.uk/2013/01/part-1-of-writing-your-own-net-based.html http://bryanpjohnston.com/2012/09/28/custom-wix-managed-bootstrapper-application/ http://blogs.msdn.com/b/heaths/archive/2011/10/28/introducing-managed-bootstrapper-applications.aspx These seem to use the ManagedBootstrapperApplicationHost, which does a few things around checking for and installing .NET. I'd like to know if I can customize this behaviour (or perhaps even remove it). My understanding of how this works is that there are actually two bootstrappers - an unmanaged one which checks for .NET, and installs it if necessary (but is generally hidden from the developer), and a managed one which is the actual install. This has caused some concerns amongst our team. One of these concerns was the slightly more painful debugging experience, because the process which would get launched is not the 'real' process which we want to debug. There are tricks you can use (Heath Stewart described a way of setting up Global Flags to first break into the first one, F5 to continue, then break into the managed code) but it seemed like it would be simpler if the bootstrapper project could just kick out the managed bootstrapper output on its own without the unmanaged bootstrapper getting in the way (at least for debugging purposes). The second concern was whether we can customize the unmanaged bootstrapper at all, changing the logo, descriptive text, and perhaps also changing the action to show an error rather than installing .NET automatically. Are these things possible? I was thinking that we could build a WixStdBA bootstrapper which calls our managed bootstrapper. Thanks John -- Own the Future-Intel(R) Level Up Game Demo Contest 2013 Rise to greatness in Intel's independent game demo contest. Compete for recognition, cash, and the chance to get your game on Steam. $5K grand prize plus 10 genre and skill prizes. Submit your demo by 6/6/13. http://altfarm.mediaplex.com/ad/ck/12124-176961-30367-2 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Own the Future-Intel(R) Level Up Game Demo Contest 2013 Rise to greatness in Intel's independent game demo contest. Compete for recognition, cash, and the chance to get your game on Steam. $5K grand prize plus 10 genre and skill prizes. Submit your demo by 6/6/13. http://altfarm.mediaplex.com/ad/ck/12124-176961-30367-2
Re: [WiX-users] Custom Managed Bootstrapper Application Host behaviour
Nice, I'll play with that tomorrow. Thanks On 2 April 2013 19:02, tom tomer.d...@intergraph.com wrote: Also search in this forum for /AutoDebugAttacher/ class This is a utility class created by one of the forum members which automatically attach the active debugger To the bootstarpper -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Custom-Managed-Bootstrapper-Application-Host-behaviour-tp7584814p7584822.html Sent from the wix-users mailing list archive at Nabble.com. -- Minimize network downtime and maximize team effectiveness. Reduce network management and security costs.Learn how to hire the most talented Cisco Certified professionals. Visit the Employer Resources Portal http://www.cisco.com/web/learning/employer_resources/index.html ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Minimize network downtime and maximize team effectiveness. Reduce network management and security costs.Learn how to hire the most talented Cisco Certified professionals. Visit the Employer Resources Portal http://www.cisco.com/web/learning/employer_resources/index.html ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Question about conditional statements in elements
That's true in theory but in practice it's often better to change it every build. This simplifies the upgrade semantics (upgrade is an upgrade is an upgrade, rather than worrying about whether it's a small update, minor upgrade or major upgrade) and makes it much easier to test that your product can be upgraded by later versions before release. I think there are probably upgrade scenarios where a major upgrade isn't advisable, but I've never seen such a scenario and I can't think what they might be off the top of my head. On 23 March 2013 13:28, Bruce Cran br...@cran.org.uk wrote: On 22/03/2013 17:24, Daniel Madill wrote: Hi Alain, In general, Product ID=* is a good thing. Each new build should generate a new product code because it typically means you've made changes to the product (i.e. made a new version). If you want to test the Maintenance dialog then run the same MSI (without rebuilding it!) twice. When you use the MajorUpgrade element in WiX it handles removing the old version and installing the new version when you upgrade. Hence, in many cases the Welcome dialog is entirely appropriate because the user experience on upgrade or new installation from a UI perspective is similar. The MajorUpgrade element has options for displaying messages if the user tries to upgrade or downgrade and should not be allowed, etc. if that's what you need. If you want something more complicated on upgrade then you will have to do a little more work. Microsoft says the Product Code should identify a particular release (http://msdn.microsoft.com/en-gb/library/windows/desktop/aa370854(v=vs.85).aspx): The ProductCode property is a unique identifier for the particular product release, represented as a string GUID, for example {12345678-1234-1234-1234-123456789012}. That seems to imply it shouldn't be changed from one build to the next but only when the major, minor or revision fields are changed. -- Bruce Cran -- Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_mar ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_mar ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Question about conditional statements in elements
Dangit Chris, beat me to it :) Switch on verbose logging (http://support.microsoft.com/kb/314852), and look for something like this: MSI (c) (14:28) [11:56:32:469]: Doing action: FindRelatedProducts Action 11:56:32: FindRelatedProducts. Searching for related applications Action start 11:56:32: FindRelatedProducts. FindRelatedProducts: Found application: {XX----X} Immediately following this you should get some PROPERTY CHANGE events, which will be the property defined in the upgrade table as what should be set when it finds an upgrade. On 22 March 2013 15:49, Christopher Painter chr...@iswix.com wrote: It means an MSI sharing this ProductCode ( either this PackageCode which would indicate a maintenance transaction or another PackageCode which would indicate a small or minor update ) is already installed. In the case of a Major Upgrade the ProductCode has been changed and therefore from this new MSI's perspective it is not yet installed. is a special operator regarding features. See the links I sent in my other email. Regards, Chris From: Alain Forget afor...@cmu.edu Sent: Friday, March 22, 2013 10:47 AM To: General discussion for Windows Installer XML toolset. wix-users@lists.sourceforge.net Subject: Re: [WiX-users] Question about conditional statements in elements As far as I understand it, Installed means, Before this installer was run, a version of this program was already installed on this machine. Someone please correct me if that isn't quite true. As far as ftDatabase=3, I have no idea, I haven't yet seen that syntax yet. Alain -Original Message- From: Ackerman, Buddy [mailto:backer...@tnsi.com] Sent: March 22, 2013 11:39 To: wix-users@lists.sourceforge.net Subject: [WiX-users] Question about conditional statements in elements I'm very new to WiX and have inherited an existing project. I've been deciphering it fine except for a few things. In this project I have the following element: Show Dialog=WelcomeDlg Before=ProgressDlgNOT Installed/Show The question with this is the NOT Installed condition. What exactly does Installed mean? When I run this to upgrade and already installed application this dialog still shows up. SO, I'm not sure what Installed really means (there is also an Upgrade element in the project with a property assigned to it that is used in other controls throughout the project). Next is the following syntax that I have in several control conditional statements: ftDatabase=3 The ftDatabase is the ID of one of the Features. However, I don't know what value it would have. Is this an install level value or install type value? Thanks for some newbie help. This e-mail message is for the sole use of the intended recipient(s)and may contain confidential and privileged information of Transaction Network Services. Any unauthorised review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. -- Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_mar ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_mar ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_mar ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_mar ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Question about conditional statements in elements
That would probably explain it as well. By default, I believe WiX will use a property called WIX_UPGRADE_DETECTED. Again, remember that WiX is just a way of creating MSI files, so that MajorUpgrade element creates entries in the Upgrade table in the install. One of the columns in this table defines the property to set if a matching upgrade code is found. You can examine the contents of that table using a tool called Orca (http://msdn.microsoft.com/en-gb/library/windows/desktop/aa370557(v=vs.85).aspx) The other way to find out what property it's *actually* using is by examine the log for PROPERTY CHANGE events emitted by FindRelatedProducts. Hope that helps On 22 March 2013 16:52, Phil Wilson phil.wil...@mvps.org wrote: Ah, the other explanation is that you installed that MSI in a per User context, and now you're installing it a different user context (another user or per System). Phil -Original Message- From: Phil Wilson [mailto:phil.wil...@mvps.org] Sent: Friday, March 22, 2013 9:51 AM To: 'General discussion for Windows Installer XML toolset.' Subject: RE: [WiX-users] Question about conditional statements in elements Yes, the Installed property means this ProductCode is installed. If you see that Welcome dialog again the most obvious thing to check is whether the ProductCode has changed. The idea is that you only see the Welcome dialog on fresh first time install. Later actions based on the same ProductCode are maintenance options, feature add/remove etc. It's got to be the ProductCode changing. This stuff works all the time and has done for years. This is a Windows Installer property used in every MSI-based install, whether WiX or not. It's not likely that such a basic thing doesn't work. http://msdn.microsoft.com/en-us/library/windows/desktop/aa369297(v=vs.85).as px Phil -Original Message- From: Ackerman, Buddy [mailto:backer...@tnsi.com] Sent: Friday, March 22, 2013 9:32 AM To: chr...@iswix.com; General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Question about conditional statements in elements So what property is it actually checking to see if it's installed? On my product element there is a Version attribute and there is an UpgradeCode attribute, are these what are being used? Again I have already installed the product and when I run the installer again (with the Version attribute change to a higher minor version) this dialog still shows. I actually want the dialog to show but I am just curious as to why it is still showing given this criteria. Thanks. -Original Message- From: Christopher Painter [mailto:chr...@iswix.com] Sent: Friday, March 22, 2013 11:50 AM To: afor...@cmu.edu; General discussion for Windows Installer XML toolset.; General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Question about conditional statements in elements It means an MSI sharing this ProductCode ( either this PackageCode which would indicate a maintenance transaction or another PackageCode which would indicate a small or minor update ) is already installed. In the case of a Major Upgrade the ProductCode has been changed and therefore from this new MSI's perspective it is not yet installed. is a special operator regarding features. See the links I sent in my other email. Regards, Chris From: Alain Forget afor...@cmu.edu Sent: Friday, March 22, 2013 10:47 AM To: General discussion for Windows Installer XML toolset. wix-users@lists.sourceforge.net Subject: Re: [WiX-users] Question about conditional statements in elements As far as I understand it, Installed means, Before this installer was run, a version of this program was already installed on this machine. Someone please correct me if that isn't quite true. As far as ftDatabase=3, I have no idea, I haven't yet seen that syntax yet. Alain -Original Message- From: Ackerman, Buddy [mailto:backer...@tnsi.com] Sent: March 22, 2013 11:39 To: wix-users@lists.sourceforge.net Subject: [WiX-users] Question about conditional statements in elements I'm very new to WiX and have inherited an existing project. I've been deciphering it fine except for a few things. In this project I have the following element: Show Dialog=WelcomeDlg Before=ProgressDlgNOT Installed/Show The question with this is the NOT Installed condition. What exactly does Installed mean? When I run this to upgrade and already installed application this dialog still shows up. SO, I'm not sure what Installed really means (there is also an Upgrade element in the project with a property assigned to it that is used in other controls throughout the project). Next is the following syntax that I have in several control conditional statements: ftDatabase=3 The ftDatabase is the ID of one of the Features. However, I don't know what value it would have. Is this an install level