The project looks like this (v3.7.1224.0):

In my wixproj i have different BindInputPaths like these:

<BindInputPaths Include="..\Protocol\bin\Release\">
        <BindName>Protocol</BindName>
        <InProject>false</InProject>
</BindInputPaths> 

Is there a better way to declare these paths? i don't like having 
hardcoded paths in the wixproj file.

Then the files in the wxs are then included like this:

<Component Id="cmpProtocol" Guid="*">
        <File Id="fileProtocol" KeyPath="yes" 
Source="!(bindpath.Protocol)\Protocol.dll" />
</Component>

I then build two different .msi's on the build server and fetch them. Now 
comes the patching. At the moment the steps that i'm trying locally looks 
like this:

The administrative install and creation of wixmst:
Melt.exe old\Setup1.2.1027.3270.msi -out oldout\Setup.wixpdb -pdb 
old\Setup.wixpdb -x oldout\files
Melt.exe newSetup1.2.1028.3271.msi -out newout\Setup.wixpdb -pdb 
new\Setup.wixpdb -x newout\files
torch.exe -v -p -xi oldout\Setup.wixpdb newout\Setup.wixpdb -out 
patch\diff.wixmst

Creation of wixmsp
candle.exe patch.wsx
light.exe patch.wixobj -out patch\patch.wixmsp

Creation of msp
pyro.exe patch\patch.wixmsp -out patch\patch.msp -t RTM patch\diff.wixmst

And this is where i'm getting errors, when running pyro:

error PYRO0103 : The system cannot find the file 
'C:\some\path\on\buildserver\Source\Setup\Company.ico'.
error PYRO0103 : The system cannot find the file 
'C:\some\path\on\buildserver\Source\Setup\Company.cer'.

The .ico and .cer are included like this:

 <Icon Id="icon.ico" SourceFile="!(bindpath.ProjectDir)\Company.ico"/>
        <Property Id="ARPPRODUCTICON" Value="icon.ico" />
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION" />

<PatchCertificates>
        <DigitalCertificate Id="HusqvarnaCertificate" 
SourceFile="!(bindpath.ProjectDir)\Company.cer" />
</PatchCertificates>

I thought that melt.exe would replace the bindpaths with the local paths? 
Or am i doing something wrong? It's not complaining about the other 65 
files that are included in the installer, although i'm not sure if pyro 
lists all errors. Maybe it stops after a while.

Any help is highly appreciated!

Best regards, Jani



From:   "Tunney, Stephen" <stephen.tun...@nuance.com>
To:     General discussion about the WiX toolset. 
<wix-users@lists.sourceforge.net>
Date:   2015-03-04 15:41
Subject:        Re: [WiX-users] Including files to installer with bindpath 
-       best    practice?



What command line arguments do you have for your light command that 
generates your wixmsp?

-----Original Message-----
From: Jani C Oinonen [mailto:jani.c.oino...@consultant.husqvarnagroup.com] 

Sent: March-04-15 5:03 AM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Including files to installer with bindpath - best 
practice?

I'm in the process of enabling UAC patching for our software. The process 
today looks like this (some steps are left out):

I use melt on the two different msi packages + wixpdb files to create new 
wixpdb files + extraction of all the files (administrative install).
i use torch, that compares the two newly created wixpdb files and their 
extracted files, to create a diff.wixmst file i create the patch.wixmsp 
with light Then i create the final .msp file with pyro + diff.wixmst and 
patch.wixmsp.

This works fine when i build everything locally. However, if i retrieve 
the two .msi packages from our buildserver, pyro will start throwing
PYRO0103 errors. The error message clearly shows that the wixdb files 
contains the paths from the buildserver, which arent ofcourse valid 
locally on my computer. I find it really hard to find information but i've 
come to the conclusion that i need to use BindInputPaths in my wixproj 
file and then use !(bindpath.SomeName) in the wxs files. If i've 
understood the issue correctly, this should give pyro the possibility to 
replace the paths and the errors should go away.

However, in one of my wxs files there are about 15 project references, 
like this:

$(var.SomeProject.TargetPath)

I could ofcourse create named bindpaths for all the projects, but 
something tells me that there should be a smarter way to do this?

Another problem that arises is that i'm probably forced to use hardcoded 
paths? $(var.SomeProject.TargetPath) always results in the correct path, 
but if i use bindpaths i'm forced to provide a hardcoded, relative path to 
the built dll's, etc? Example:

  <ItemGroup>
    <BindInputPaths Include="..\..\SomeVsProject\bin\release\">
      <BindName>SomeVsProject</BindName>
      <InProject>false</InProject>
    </BindInputPaths>
  </ItemGroup>

This will work fine if the project folder never changes it's name and only 
when i compile in releasemode. But as soon as that changes the wix project 
will fail. Is there some way to include these files in a more reliable 
way?

Best regards, Jani




The information in this email may be confidential and/or legally 
privileged. It has been sent for the sole use of the intended 
recipient(s). If you are not an intended recipient, you are strictly 
prohibited from reading, disclosing, distributing, copying or using this 
email or any of its contents, in any way whatsoever. If you have received 
this email in error, please contact the sender by reply email and destroy 
all copies of the original message. Please also be advised that emails are 
not a secure form for communication, and may contain errors.
------------------------------------------------------------------------------
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






The information in this email may be confidential and/or legally privileged. It 
has been sent for the sole use of the intended recipient(s). If you are not an 
intended recipient, you are strictly prohibited from reading, disclosing, 
distributing, copying or using this email or any of its contents, in any way 
whatsoever. If you have received this email in error, please contact the sender 
by reply email and destroy all copies of the original message. Please also be 
advised that emails are not a secure form for communication, and may contain 
errors.
------------------------------------------------------------------------------
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

Reply via email to