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 attachments. > > ------------------------------------------------------------------------ > > ------ > > Nokia and AT&T 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 AT&T 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 AT&T 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 > -- virtually, Rob Mensching - http://RobMensching.com LLC ------------------------------------------------------------------------------ Nokia and AT&T 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