WiX源文件的相对路径

时间:2012-10-19 11:41:37

标签: wix

我的项目有一个简单的解决方案,效果很好。但我无法掌握如何使源路径相对。有人可以帮帮我吗?

  <Component Id="Bla.exe" Guid="*">
    <File Id="Bla.exe" Source="D:\Projects\Bla\Bla\bin\Debug\Bla.exe" KeyPath="yes" Checksum="yes"/>
  </Component>

如何使路径相对于Wix解决方案? WiX和所有必要的文件都在同一个解决方案中。

2 个答案:

答案 0 :(得分:64)

你可以像这样使用相对路径:

    <File Id="Bla.exe" Source="..\bin\Debug\Bla.exe" KeyPath="yes" Checksum="yes"/>

OR

您可以将配置文件添加到项目中以定义公共变量。为此,请在项目中添加一个新的“WiX Include”文件,将其命名为 config.wxi 。然后在您的包含文件中,您可以像这样定义 SourceDir 变量:

<?xml version="1.0" encoding="utf-8"?>
<Include>
  <?define SourceDir = "D:\Projects\Bla\Bla\bin\Debug" ?>
</Include>

现在在.wxs文件中,您可以在顶部添加对配置文件的引用,例如:

<?xml version="1.0" encoding="UTF-8"?>
 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
 <?include "config.wxi"?>

然后只需引用你的 SourceDir 变量:

<File Id="Bla.exe" Source="$(var.SourceDir)\Bla.exe" KeyPath="yes" Checksum="yes"/>

此外,您可以使用内置的WiX project variables

答案 1 :(得分:2)

有很多方法可以做到这一点,但我个人喜欢做的是将我的应用程序安装程序项目放在不同的解决方案中。我首先构建应用程序解决方案,然后使用postbuild命令将内容发布到deploy文件夹。

在我的安装程序项目中,我设置$(var.SourceDir)=“.. \ deploy”,然后设置$(var.SourceDir)\ foo.exe作为源路径。