TFS托管构建控制器 - 找不到Microsoft.TextTemplating.targets

use*_*639 6 msbuild tfs t4 azure-devops

我一直在调试一天的问题,似乎无法搞清楚.也许其他人遇到了类似的东西,可以解决一些问题?

我们在解决方案中的项目中配置了所有T4模板,以便在构建项目时运行,如shift-ctrl-b.这很好用 - 它要求我们将这个import语句添加到项目.csproj文件中:

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\TextTemplating\Microsoft.TextTemplating.targets"/>
Run Code Online (Sandbox Code Playgroud)

我们通过Visual Studio 2012和云TFS(tfs.visualstudio.com)建立了持续集成.当我们的解决方案在TFS的托管控制器上构建时,我们不断收到以下错误:

找不到导入的项目"C:\ Program Files\MSBuild\Microsoft\VisualStudio\v10.0\TextTemplating\Microsoft.TextTemplating.targets".确认声明中的路径是否正确,以及该文件是否存在于磁盘上.

在我们的开发机器上,文件存在,因此问题似乎是托管构建服务器上不存在该文件.

如果我们对这个假设是正确的,除了安装我们自己的TFS构建服务器之外,还有解决这个问题的方法吗?

Dav*_*haw 6

我怀疑托管构建服务器上是否装有 Visual Studio 2010 (v10.0)。

您可以在此处获取托管构建服务器上当前安装的内容的列表,Tarun Arora在此处提供了更多详细信息。

对于您的问题,请尝试11.0以下版本(适用于 VS2012):

<Import Project="$(MSBuildExtensionsPath)
    \Microsoft\VisualStudio\v11.0\TextTemplating\Microsoft.TextTemplating.targets"/>
Run Code Online (Sandbox Code Playgroud)

更好的方法是使用VisualStudioVersionMSBuild 属性:

<Import Project="$(MSBuildExtensionsPath)
    \Microsoft\VisualStudio\v$(VisualStudioVersion)\TextTemplating\Microsoft.TextTemplating.targets"/>
Run Code Online (Sandbox Code Playgroud)

这将确保托管构建服务器的未来更新不会影响您的代码。请阅读此处了解更多详细信息。