【发布时间】:2014-12-05 18:46:19
【问题描述】:
如果我希望一个 TFS 2012 构建控制器能够访问同一自定义构建过程程序集的两个版本(我的每个分支一个),我该怎么办?
每个分支有一个构建过程模板,每个分支有一个构建定义。每个分支都有自己的自定义构建过程程序集,但它们都具有相同的程序集名称和命名空间(例如 Company.Build.Activities.dll)。 (我意识到我可以通过为每个分支的程序集使用不同的名称来消除所有这些问题,例如 Company.Build.Activities.Dev.dll 和 Company.Build.Activities.Com.dll)
我的构建控制器指向“自定义程序集的版本控制路径”($/Build/ForTFS) 的一个位置。我尝试将这两个程序集放在不同的子文件夹下,但是构建过程会导致错误:
TF215097: An error occurred while initializing a build for build definition \Company\Dev_BuildDef:
Exception Message: Cannot set unknown member 'Company.Build.Activities.LastActivity.CustomFolderPath'. (type XamlObjectWriterException)
似乎它使用了错误的程序集副本(CustomFolderPath 仅在一个程序集中定义,而不是在另一个程序集中定义)。
如果我可以在模板 xaml 中指定路径或所需的程序集版本,我想我可以解决这个问题,但我不确定我能做到这一点。我已阅读建议您可以在用于编辑模板的 Visual Studio 项目中添加对特定程序集版本的引用的帖子。但这似乎对我不起作用,构建过程定义如何知道该项目的引用......它只指向模板文件本身,而不是项目。
有什么建议吗?我是不是搞错了?
【问题讨论】:
-
为什么每个分支都需要不同的程序集。您的构建 xaml 在分支之间应该相同,因此您的自定义程序集的版本相同。任何差异都应该在您的定义中......
-
在创建分支后,构建过程的要求(仅针对开发分支)有时会发生变化。在这种情况下,与商业分支相比,我们希望在开发分支中发生一些不同的事情。
-
这没有意义。你能进一步解释一下吗?
标签: tfs