我们有引用 wixlib 文件的安装程序来获得一些常用功能。 wixlib 在另一个解决方案中构建,然后移动到该解决方案中的文件夹。当我们尝试使用 TFS 构建构建安装程序时,我们从 light.exe 收到错误:
light.exe:系统找不到类型为“Source”的文件“..\..\..\Core\Common\assemblies\v1.0\Common.Wix.wixlib”。
我们的常规项目可以引用\assembiles\v1.0,因为我们在那里存储了一些其他常用程序集。我们如何让 WiX 在构建期间识别此位置?
最佳答案
您正在直接引用 wixlib。因此,据我了解 TFS 构建过程,它应该添加到您的解决方案的 TFS 项目中。 TFS 项目不应依赖于另一个非依赖解决方案的输出。这至少是不好的做法。在任何情况下,您都不能保证在您的项目在服务器上构建之前生成此输出。
据我所知,TFS 构建会为每个构建创建单独的文件夹并在其中获取源代码。因此,您的解决方案不再位于同一文件夹层次结构级别。
还有一点支持将 wixlib 显式复制到您的安装程序项目中:版本控制——在这种情况下,公共(public)库中出现的任何错误都不会立即破坏所有引用它的项目。并且您可以逐步升级和测试每个项目。您能想象在每次构建时自动下载任何第 3 方 dll 的新版本吗?该 dll 中的任何更改都会立即破坏您的应用程序,即使更改对您来说并不重要。
关于tfs - 将来自另一个解决方案的 wixlibs 与 TFS 构建一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13387066/