Re: [WiX-users] ServiceInstall in a different fragment?
Windows Installer defines the ServiceInstall table with a foreign key to the Component table because it considers each row of the ServiceInstall table to be part of that component (exactly the same as files and registry values). Thus, separating the service and file parts of the component is a scenario exactly analogous to partial classes (at least it is IMHO). -Original Message- From: Castro, Edwin G. (Hillsboro) [mailto:edwin.cas...@fiserv.com] Sent: Wednesday, October 27, 2010 9:44 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] ServiceInstall in a different fragment? The problem is that Windows Installer defines the ServiceInstall table with a foreign key to the Component table and not a path to the executable (see http://msdn.microsoft.com/en-us/library/aa371637(VS.85).aspx). Authoring in WiX would need to maintain this relationship. Today WiX requires that everything that needs to be tied to a component be defined together in the same Component element. Creating a syntax for authoring partial components (useful in my opinion) is not as simple as creating a new XML element to be consumed by candle. There needs to be some sort of consistency check done at some point in time to determine the closure of all components. As Rob points out this is not a simple process in the current toolset. My only hope is that something can be done about this in WiX 4.0 (that is the right version to provide such an enhancement). Edwin G. Castro Software Developer - Staff Electronic Banking Services Fiserv Office: 503-746-0643 Fax: 503-617-0291 www.fiserv.com Please consider the environment before printing this e-mail -Original Message- From: McKinnon, Chris [mailto:cmckin...@atb.com] Sent: Wednesday, October 27, 2010 8:44 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] ServiceInstall in a different fragment? I wasn't thinking of something like a partial component. Just a way to specify the binPath to the service executable so that the ServiceInstall could be specified in its own component. Something like the File attribute of the XmlFile node. I'm not sure how technically feasible that is, however. Thanks, Chris McKinnon -Original Message- From: Rob Mensching [mailto:r...@robmensching.com] Sent: Wednesday, October 27, 2010 3:19 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] ServiceInstall in a different fragment? The concept of partial Components (like partial classes in C#) has come up in the past. The first problem is the Component composition is a very sacrosanct thing in the Windows Installer. Modifying the composition willy-nilly by adding or removing other files from the link line seemed very dangerous line to walk. We've always erred on the side of caution (which, unfortunately, often led to verbosity). The second problem is the linker doesn't really work this way so getting partial Components into the set of resolved references would take some thinking. You'll notice that C++ (with it's multi-pass compile/link phases like WiX) doesn't support partial classes either. Anyway, that's why we are where we are right now. Looking forward, I think there are a lot of things we should do to make WiX look more like C# and less like C++. But that's for WiX v4. On Tue, Oct 26, 2010 at 10:54 AM, Castro, Edwin G. (Hillsboro) edwin.cas...@fiserv.com wrote: I think it would be really useful to have a ComponentRef of some kind so we can split up file harvesting from actions that apply to some components. ServiceInstall is just one example of this. Another common one I run into is XmlFile and XmlConfig. The Xml elements can be placed in a component by themselves and use a Registry Key as a KeyPath but I would really like to be able to apply them to a ComponentRef of a file I harvested. Edwin G. Castro Software Developer - Staff Electronic Banking Services Fiserv Office: 503-746-0643 Fax: 503-617-0291 www.fiserv.com Please consider the environment before printing this e-mail -Original Message- From: Pally Sandher [mailto:pally.sand...@iesve.com] Sent: Tuesday, October 26, 2010 2:57 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] ServiceInstall in a different fragment? The service executable installed will point to the KeyPath for the Component. Therefore, you must ensure that the correct executable is either the first child File element under this Component or explicitly mark the appropriate File element as KeyPath='yes'. From the Remarks section at http://wix.sourceforge.net/manual-wix3/wix_xsd_serviceinstall.htm So at present, that's would be a no. That doesn't really sit right with me but I guess Rob M, Bob A et al had good reasons for making it like so. Palbinder
Re: [WiX-users] ServiceInstall in a different fragment?
The concept of partial Components (like partial classes in C#) has come up in the past. The first problem is the Component composition is a very sacrosanct thing in the Windows Installer. Modifying the composition willy-nilly by adding or removing other files from the link line seemed very dangerous line to walk. We've always erred on the side of caution (which, unfortunately, often led to verbosity). The second problem is the linker doesn't really work this way so getting partial Components into the set of resolved references would take some thinking. You'll notice that C++ (with it's multi-pass compile/link phases like WiX) doesn't support partial classes either. Anyway, that's why we are where we are right now. Looking forward, I think there are a lot of things we should do to make WiX look more like C# and less like C++. But that's for WiX v4. On Tue, Oct 26, 2010 at 10:54 AM, Castro, Edwin G. (Hillsboro) edwin.cas...@fiserv.com wrote: I think it would be really useful to have a ComponentRef of some kind so we can split up file harvesting from actions that apply to some components. ServiceInstall is just one example of this. Another common one I run into is XmlFile and XmlConfig. The Xml elements can be placed in a component by themselves and use a Registry Key as a KeyPath but I would really like to be able to apply them to a ComponentRef of a file I harvested. Edwin G. Castro Software Developer - Staff Electronic Banking Services Fiserv Office: 503-746-0643 Fax: 503-617-0291 www.fiserv.com Please consider the environment before printing this e-mail -Original Message- From: Pally Sandher [mailto:pally.sand...@iesve.com] Sent: Tuesday, October 26, 2010 2:57 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] ServiceInstall in a different fragment? The service executable installed will point to the KeyPath for the Component. Therefore, you must ensure that the correct executable is either the first child File element under this Component or explicitly mark the appropriate File element as KeyPath='yes'. From the Remarks section at http://wix.sourceforge.net/manual-wix3/wix_xsd_serviceinstall.htm So at present, that's would be a no. That doesn't really sit right with me but I guess Rob M, Bob A et al had good reasons for making it like so. Palbinder Sandher Software Deployment IT Administrator 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: McKinnon, Chris [mailto:cmckin...@atb.com] Sent: 26 October 2010 03:25 To: wix-users@lists.sourceforge.net Subject: [WiX-users] ServiceInstall in a different fragment? Hi, I've separated my WiX installer into multiple fragment files. My windows service is broken into ServiceFiles.wxs and ServiceActions.wxs, for example. I ran into an issue where my service wasn't getting installed because it wasn't in the same component as the executable anymore. Like so: Component Id=WindowsService_InstallService Guid={8DE953A1-2D84-42ba-8A03-0A0F79CC3BCC} CreateFolder / ServiceInstall Id=InstallService ErrorControl=normal Name=Windows Service Start=auto Type=ownProcess Description=Description... DisplayName=Windows Service Account=[SERVICE_DOMAIN]\[SERVICE_ACCOUNT] Password=[SERVICE_PASSWORD] Vital=yes / /Component If I move the ServiceInstall back into the component with the file it works fine: Component Id=WindowsService.exe Guid=* File Id=WindowsService.exe KeyPath=yes Source=Published\Service\WindowsService.exe / ServiceInstall Id=InstallService ErrorControl=normal Name=Windows Service Start=auto Type=ownProcess Description=Description... DisplayName=Windows Service Account=[SERVICE_DOMAIN]\[SERVICE_ACCOUNT] Password=[SERVICE_PASSWORD] Vital=yes / /Component Is there any way to separate the ServiceInstall out from the file component? I'd like to keep my files in one fragment and actions on another. I'm guessing no because there's no way to specify the binPath of the service but I thought I'd ask. Thanks, Chris McKinnon The information contained in this e-mail is confidential and may contain privileged information. It is intended only for the person or persons named above. If you are not an intended recipient of this e-mail please be advised that any distribution or copying of this e-mail is prohibited. If you have received this e-mail in error, please notify us by return e-mail and delete all copies of the e-mail and any
Re: [WiX-users] ServiceInstall in a different fragment?
The service executable installed will point to the KeyPath for the Component. Therefore, you must ensure that the correct executable is either the first child File element under this Component or explicitly mark the appropriate File element as KeyPath='yes'. From the Remarks section at http://wix.sourceforge.net/manual-wix3/wix_xsd_serviceinstall.htm So at present, that's would be a no. That doesn't really sit right with me but I guess Rob M, Bob A et al had good reasons for making it like so. Palbinder Sandher Software Deployment IT Administrator 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: McKinnon, Chris [mailto:cmckin...@atb.com] Sent: 26 October 2010 03:25 To: wix-users@lists.sourceforge.net Subject: [WiX-users] ServiceInstall in a different fragment? Hi, I've separated my WiX installer into multiple fragment files. My windows service is broken into ServiceFiles.wxs and ServiceActions.wxs, for example. I ran into an issue where my service wasn't getting installed because it wasn't in the same component as the executable anymore. Like so: Component Id=WindowsService_InstallService Guid={8DE953A1-2D84-42ba-8A03-0A0F79CC3BCC} CreateFolder / ServiceInstall Id=InstallService ErrorControl=normal Name=Windows Service Start=auto Type=ownProcess Description=Description... DisplayName=Windows Service Account=[SERVICE_DOMAIN]\[SERVICE_ACCOUNT] Password=[SERVICE_PASSWORD] Vital=yes / /Component If I move the ServiceInstall back into the component with the file it works fine: Component Id=WindowsService.exe Guid=* File Id=WindowsService.exe KeyPath=yes Source=Published\Service\WindowsService.exe / ServiceInstall Id=InstallService ErrorControl=normal Name=Windows Service Start=auto Type=ownProcess Description=Description... DisplayName=Windows Service Account=[SERVICE_DOMAIN]\[SERVICE_ACCOUNT] Password=[SERVICE_PASSWORD] Vital=yes / /Component Is there any way to separate the ServiceInstall out from the file component? I'd like to keep my files in one fragment and actions on another. I'm guessing no because there's no way to specify the binPath of the service but I thought I'd ask. Thanks, Chris McKinnon The information contained in this e-mail is confidential and may contain privileged information. It is intended only for the person or persons named above. If you are not an intended recipient of this e-mail please be advised that any distribution or copying of this e-mail is prohibited. If you have received this e-mail in error, please notify us by return e-mail and delete all copies of the e-mail and any attachments. -- Nokia and ATT present the 2010 Calling All Innovators-North America contest Create new apps games for the Nokia N8 for consumers in U.S. and Canada $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store http://p.sf.net/sfu/nokia-dev2dev ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Nokia and ATT present the 2010 Calling All Innovators-North America contest Create new apps games for the Nokia N8 for consumers in U.S. and Canada $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store http://p.sf.net/sfu/nokia-dev2dev ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] ServiceInstall in a different fragment?
Thanks that's what I figured. It would be nice to get an error if you make the mistake of not locating your ServiceInstall in a component with an executable. -Original Message- From: Pally Sandher [mailto:pally.sand...@iesve.com] Sent: Tuesday, October 26, 2010 3:57 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] ServiceInstall in a different fragment? The service executable installed will point to the KeyPath for the Component. Therefore, you must ensure that the correct executable is either the first child File element under this Component or explicitly mark the appropriate File element as KeyPath='yes'. From the Remarks section at http://wix.sourceforge.net/manual-wix3/wix_xsd_serviceinstall.htm So at present, that's would be a no. That doesn't really sit right with me but I guess Rob M, Bob A et al had good reasons for making it like so. Palbinder Sandher Software Deployment IT Administrator 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: McKinnon, Chris [mailto:cmckin...@atb.com] Sent: 26 October 2010 03:25 To: wix-users@lists.sourceforge.net Subject: [WiX-users] ServiceInstall in a different fragment? Hi, I've separated my WiX installer into multiple fragment files. My windows service is broken into ServiceFiles.wxs and ServiceActions.wxs, for example. I ran into an issue where my service wasn't getting installed because it wasn't in the same component as the executable anymore. Like so: Component Id=WindowsService_InstallService Guid={8DE953A1-2D84-42ba-8A03-0A0F79CC3BCC} CreateFolder / ServiceInstall Id=InstallService ErrorControl=normal Name=Windows Service Start=auto Type=ownProcess Description=Description... DisplayName=Windows Service Account=[SERVICE_DOMAIN]\[SERVICE_ACCOUNT] Password=[SERVICE_PASSWORD] Vital=yes / /Component If I move the ServiceInstall back into the component with the file it works fine: Component Id=WindowsService.exe Guid=* File Id=WindowsService.exe KeyPath=yes Source=Published\Service\WindowsService.exe / ServiceInstall Id=InstallService ErrorControl=normal Name=Windows Service Start=auto Type=ownProcess Description=Description... DisplayName=Windows Service Account=[SERVICE_DOMAIN]\[SERVICE_ACCOUNT] Password=[SERVICE_PASSWORD] Vital=yes / /Component Is there any way to separate the ServiceInstall out from the file component? I'd like to keep my files in one fragment and actions on another. I'm guessing no because there's no way to specify the binPath of the service but I thought I'd ask. Thanks, Chris McKinnon The information contained in this e-mail is confidential and may contain privileged information. It is intended only for the person or persons named above. If you are not an intended recipient of this e-mail please be advised that any distribution or copying of this e-mail is prohibited. If you have received this e-mail in error, please notify us by return e-mail and delete all copies of the e-mail and any attachments. -- Nokia and ATT present the 2010 Calling All Innovators-North America contest Create new apps games for the Nokia N8 for consumers in U.S. and Canada $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store http://p.sf.net/sfu/nokia-dev2dev ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Nokia and ATT present the 2010 Calling All Innovators-North America contest Create new apps games for the Nokia N8 for consumers in U.S. and Canada $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store http://p.sf.net/sfu/nokia-dev2dev ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users The information contained in this e-mail is confidential and may contain privileged information. It is intended only for the person or persons named above. If you are not an intended recipient of this e-mail please be advised that any distribution or copying of this e-mail is prohibited. If you have received this e-mail in error, please notify us by return e-mail and delete all copies of the e-mail and any attachments
Re: [WiX-users] ServiceInstall in a different fragment?
I think it would be really useful to have a ComponentRef of some kind so we can split up file harvesting from actions that apply to some components. ServiceInstall is just one example of this. Another common one I run into is XmlFile and XmlConfig. The Xml elements can be placed in a component by themselves and use a Registry Key as a KeyPath but I would really like to be able to apply them to a ComponentRef of a file I harvested. Edwin G. Castro Software Developer - Staff Electronic Banking Services Fiserv Office: 503-746-0643 Fax: 503-617-0291 www.fiserv.com Please consider the environment before printing this e-mail -Original Message- From: Pally Sandher [mailto:pally.sand...@iesve.com] Sent: Tuesday, October 26, 2010 2:57 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] ServiceInstall in a different fragment? The service executable installed will point to the KeyPath for the Component. Therefore, you must ensure that the correct executable is either the first child File element under this Component or explicitly mark the appropriate File element as KeyPath='yes'. From the Remarks section at http://wix.sourceforge.net/manual-wix3/wix_xsd_serviceinstall.htm So at present, that's would be a no. That doesn't really sit right with me but I guess Rob M, Bob A et al had good reasons for making it like so. Palbinder Sandher Software Deployment IT Administrator 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: McKinnon, Chris [mailto:cmckin...@atb.com] Sent: 26 October 2010 03:25 To: wix-users@lists.sourceforge.net Subject: [WiX-users] ServiceInstall in a different fragment? Hi, I've separated my WiX installer into multiple fragment files. My windows service is broken into ServiceFiles.wxs and ServiceActions.wxs, for example. I ran into an issue where my service wasn't getting installed because it wasn't in the same component as the executable anymore. Like so: Component Id=WindowsService_InstallService Guid={8DE953A1-2D84-42ba-8A03-0A0F79CC3BCC} CreateFolder / ServiceInstall Id=InstallService ErrorControl=normal Name=Windows Service Start=auto Type=ownProcess Description=Description... DisplayName=Windows Service Account=[SERVICE_DOMAIN]\[SERVICE_ACCOUNT] Password=[SERVICE_PASSWORD] Vital=yes / /Component If I move the ServiceInstall back into the component with the file it works fine: Component Id=WindowsService.exe Guid=* File Id=WindowsService.exe KeyPath=yes Source=Published\Service\WindowsService.exe / ServiceInstall Id=InstallService ErrorControl=normal Name=Windows Service Start=auto Type=ownProcess Description=Description... DisplayName=Windows Service Account=[SERVICE_DOMAIN]\[SERVICE_ACCOUNT] Password=[SERVICE_PASSWORD] Vital=yes / /Component Is there any way to separate the ServiceInstall out from the file component? I'd like to keep my files in one fragment and actions on another. I'm guessing no because there's no way to specify the binPath of the service but I thought I'd ask. Thanks, Chris McKinnon The information contained in this e-mail is confidential and may contain privileged information. It is intended only for the person or persons named above. If you are not an intended recipient of this e-mail please be advised that any distribution or copying of this e-mail is prohibited. If you have received this e-mail in error, please notify us by return e-mail and delete all copies of the e-mail and any attachments. -- Nokia and ATT present the 2010 Calling All Innovators-North America contest Create new apps games for the Nokia N8 for consumers in U.S. and Canada $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store http://p.sf.net/sfu/nokia-dev2dev ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Nokia and ATT present the 2010 Calling All Innovators-North America contest Create new apps games for the Nokia N8 for consumers in U.S. and Canada $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store http://p.sf.net/sfu/nokia-dev2dev
[WiX-users] ServiceInstall in a different fragment?
Hi, I've separated my WiX installer into multiple fragment files. My windows service is broken into ServiceFiles.wxs and ServiceActions.wxs, for example. I ran into an issue where my service wasn't getting installed because it wasn't in the same component as the executable anymore. Like so: Component Id=WindowsService_InstallService Guid={8DE953A1-2D84-42ba-8A03-0A0F79CC3BCC} CreateFolder / ServiceInstall Id=InstallService ErrorControl=normal Name=Windows Service Start=auto Type=ownProcess Description=Description... DisplayName=Windows Service Account=[SERVICE_DOMAIN]\[SERVICE_ACCOUNT] Password=[SERVICE_PASSWORD] Vital=yes / /Component If I move the ServiceInstall back into the component with the file it works fine: Component Id=WindowsService.exe Guid=* File Id=WindowsService.exe KeyPath=yes Source=Published\Service\WindowsService.exe / ServiceInstall Id=InstallService ErrorControl=normal Name=Windows Service Start=auto Type=ownProcess Description=Description... DisplayName=Windows Service Account=[SERVICE_DOMAIN]\[SERVICE_ACCOUNT] Password=[SERVICE_PASSWORD] Vital=yes / /Component Is there any way to separate the ServiceInstall out from the file component? I'd like to keep my files in one fragment and actions on another. I'm guessing no because there's no way to specify the binPath of the service but I thought I'd ask. Thanks, Chris McKinnon The information contained in this e-mail is confidential and may contain privileged information. It is intended only for the person or persons named above. If you are not an intended recipient of this e-mail please be advised that any distribution or copying of this e-mail is prohibited. If you have received this e-mail in error, please notify us by return e-mail and delete all copies of the e-mail and any attachments. -- Nokia and ATT present the 2010 Calling All Innovators-North America contest Create new apps games for the Nokia N8 for consumers in U.S. and Canada $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store http://p.sf.net/sfu/nokia-dev2dev ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users