31

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

  <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 和所有必要的文件都在同一个解决方案中。

4

2 回答 2

68

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

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

或者

您可以将配置文件添加到项目中以定义公共变量。为此,请在您的项目中添加一个新的“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 项目变量。

于 2012-10-19T11:55:42.637 回答
2

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

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

于 2012-10-20T14:53:07.097 回答