是否可以在 Visual Studio 解决方案中包含一个程序项目和一个 Wix 项目?

Is it possible to include a program project and a Wix project both in a Visual Studio Solution?

例如,我在解决方案中使用Visual Studio创建了一个mono game项目,我添加了另一个

的wix项目

当我点击 "build solution" 时,mono 游戏项目正在构建,wix 项目随后直接构建安装程序。

这样一来,我就不需要到处分离我的项目了,因为我只需要一些带有一键安装程序的额外选项。

如果我可以使用 Wix,我可以自定义安装程序,但是如何?

经过一段时间的搜索,我找到了这个

http://wixtoolset.org/documentation/manual/v3/votive/votive_project_references.html

但是,我想将两个项目放在同一个解决方案文件夹中,而不是两个单独的解决方案文件夹。这样,如果我改变路径,link会不会就散了?

是的,你可以。只需从您的 WIX 项目添加对项目的引用。

请注意,对于项目引用,您可以在 wxs 文件中使用变量。例如,如果您的游戏项目是 DavidWong.MyGame:

<File Id="MyGame.exe" 
      Name="$(var.DavidWong.MyGame.TargetFileName)"
      Source="$(var.DavidWong.MyGame.TargetPath)" KeyPath="yes" />

有关详细信息,请参阅 the documentation

是的,它可以完成(项目参考和 $(var.ProjectName.TargetDir) 等等)但根据我的经验,有几个原因不能做到:

1) 当 Visual Studio 的新版本发布时,如果尚未发布新版本的 WiX 以支持该 Visual Studio 版本,您可能会陷入困境。我已经看过好几次了,目前如果你想支持 Visual Studio 2015,你必须 运行 WiX v3.10 的测试版。

2) 所有开发人员现在都必须安装 WiX,否则会收到一些项目无法加载的错误消息。

3) 一些开发人员会抱怨他们不想在他们的 .NET 解决方案中使用 "setup" 代码。我认为这是一个微不足道的抱怨,但我有点明白。

我喜欢做的是有一个应用程序解决方案和一个安装程序解决方案。我使用构建后复制命令和 MSBuild 发布配置文件将内容暂存到对已部署系统建模的 "deploy" 文件夹中,然后在我的 Wix 代码中使用该引用该结构。