首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将来自另一个解决方案的wixlib与TFS构建结合使用

将来自另一个解决方案的wixlib与TFS构建结合使用
EN

Stack Overflow用户
提问于 2012-11-15 04:48:31
回答 2查看 599关注 0票数 3

我们有一个引用wixlib文件的安装程序来获得一些常用的功能。wixlib在另一个解决方案中构建,然后移动到该解决方案中的一个文件夹中。当我们尝试使用TFS构建来构建安装程序时,我们从light.exe得到一个错误:

light.exe: The system cannot find the file '..\..\..\Core\Common\assemblies\v1.0\Common.Wix.wixlib' with type 'Source'.

我们的常规项目可以引用\assembiles\v1.0,因为我们在那里存储了一些其他公共程序集。我们如何让WiX在构建过程中识别这个位置?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-01 01:45:39

由于共享组件和活动解决方案位于TFS中的两个独立项目中,因此必须设置工作区,以便引用的相对路径保持不变。最简单的方法是在TFS构建中设置Workspace中的Build Agent文件夹结构,使$(SourceDir)表示根目录。但是,不要更改您的源代码管理文件夹-它保持不变。

例如,假设您具有以下结构:

代码语言:javascript
复制
-TFS
|-SharedComponents
||-MyComponents
|-ProjectArea
||-MyProject

您可能希望在build Workspace中包含以下两个项目:

代码语言:javascript
复制
Source Control Folder               Build Agent Folder
---------------------------------------------------------------------------------
$/ProjectArea/MyProject             $(SourceDir)\ProjectArea\MyProject
$/SharedComponents/MyComponents     $(SourceDir)\SharedComponents\MyComponents

这模拟了build文件夹中TFS中的结构,因此允许所有相对路径保持不变。

有关此配置的另一个注意事项:由于共享组件位于另一个位置,因此您可能希望在MyProject中创建一个解决方案文件夹,并将您正在使用的组件添加到该文件夹中。这将确保当任何人从TFS加载您的项目时,它们会自动拉出-他们不必在发现构建错误后返回并单独拉下share components文件夹。

票数 0
EN

Stack Overflow用户

发布于 2012-11-19 20:07:01

您正在直接引用wixlib。因此,据我所知,TFS构建过程应该添加到您的解决方案的TFS项目中。TFS项目不应该依赖于另一个非依赖解决方案的输出。这至少是一种糟糕的做法。在任何情况下,您都不能保证此输出将在您的项目在服务器上构建之前生成。

据我所知,TFS构建为每个构建创建单独的文件夹,并在那里获取源代码。因此,您的解决方案不再处于相同的文件夹层次结构级别。

支持显式地将wixlib复制到安装程序项目中的另一点是:版本控制-在这种情况下,公共库中的任何bug都不会立即破坏引用它的所有项目。您可以逐步升级和测试每个项目。你能想象在每次构建时自动下载任何第三方dll的新版本吗?dll中的任何更改都会立即中断您的应用程序,即使这些更改对您来说并不重要。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13387066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档