正如标题所述,我们将构建定义从TFS 2008升级到使用升级模板的TFS 2012构建定义。但作为构建过程的一部分,我们调用一个自定义DLL来覆盖某些MSBuild任务,以重写构建号和其他实用程序MSBuild任务。但是,当在TFS 2012中为其中一个升级的构建类型排队构建时,我们收到此错误:
C:\ Sites \ TfsBuild \ Rock.QL.Qbert.TfsCustomBuild.Targets - 1个错误,0个警告,查看日志文件 C:\ Sites \ TfsBuild \ Rock.QL.Qbert.TfsCustomBuild.Targets(33):无法从程序集C:\ Sites \ TfsBuild \ bin \ Rock加载“Rock.Ql.QBert.TfsCustomBuild.BuildNumberReader”任务.Ql.QBert.TfsCustomBuild.dll。无法加载文件或程序集'file:/// C:\ Sites \ TfsBuild \ bin \ Rock.Ql.QBert.TfsCustomBuild.dll'或其依赖项之一。尝试加载格式不正确的程序。确认声明是否正确,程序集及其所有依赖项是否可用,以及该任务是否包含实现Microsoft.Build.Framework.ITask的公共类。
C:\ Sites \ TfsBuild \ Rock.QL.Qbert.TfsCustomBuild.Targets - 为MSBuild生成的目标文件,以便在自定义过程中使用。
Rock.Ql.QBert.TfsCustomBuild.BuildNumberReader - 表示执行实际构建号自定义的类。
要强调,当在TFS2012中排队构建但在TFS2008中排队时,这会失败。任何想法或指针都表示赞赏。
亚历
答案 0 :(得分:0)
大多数自定义dll问题来自于它们不在正确的位置,因此请尝试在构建服务器上放置以下路径中的任何自定义dll
“C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ PublicAssemblies“
您也可以将它们放在源代码管理的文件夹中,并从构建控制器属性中将其配置为以下图像。