所以我看到了当前问题的两个解决方案,但我想知道它的优点和缺点是什么,或者是否存在事实上的最佳实践方法。
所以我当前的项目有很多配置文件,帮助文件和其他外部内容。我需要本地内容来运行和调试应用程序。目前,我们在标准的Windows安装程序项目中复制此内容。这显然是个坏主意。我们正在转向使用WiX安装程序的新设置,我目前正在代码项目旁边设置项目并尝试找出共享资源的最佳方式。我看到两种解决方案。
一个是我可以将所有资源放在WiX项目中,然后将它们添加为代码项目中的链接。这样我知道我正在调试的是安装程序。
另一种选择是使用引用变量将内容保留在代码项目中,并在安装程序中将路径放入其中。
现在它似乎是单向的,另一半是半打。这两种方法都有任何有说服力的论据吗?
答案 0 :(得分:1)
假设这些配置和帮助文件将安装在与可执行文件相同的目录中,然后将它们明确地放在代码项目中,将它们标记为内容,并将代码项目的引用添加到安装程序项目中。如果您使用的是WiX 3.5,则文件将与可执行文件一起自动包含在安装程序中,这使得编写简单的安装程序变得更加容易。
对于早期版本的WiX或更复杂的部署方案(内容文件可能会进入不同的目录),您仍然会将它们放在代码项目中,但之后您将File
元素与相对路径一起使用或Source
属性中的引用变量,以包含代码项目目录中的内容文件。
我不相信将内容文件放在WiX安装程序项目目录而不是代码项目目录中会做任何事情来确保用于调试的版本与安装的版本相同。只有通过思考应用程序如何找到这些内容文件并确保找到正确的版本的过程,才能确保这一点。
回到简单的情况,其中内容在代码项目中并标记为内容,并且它将从与可执行文件相同的目录中安装和加载,然后只需设置“复制到输出”目录“到”复制始终“或”复制如果更新“然后您可以确定调试中使用的版本和安装的版本将匹配。