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 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
> 
> 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

Reply via email to