正如标题所说,我们将构建定义从 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.Ql.QBert.TfsCustomBuild.dll 加载“Rock.Ql.QBert.TfsCustomBuild.BuildNumberReader”任务。无法加载文件或程序集 '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 中不会。任何想法或指针表示赞赏。