安装 Visual Studio 2015 Update 1 后出现 TFS 构建错误

TFS Build error after installing Visual Studio 2015 Update 1

我在我们的构建服务器上安装了 Visual Studio 2015 Update 1,现在我在编译完成后复制 Typescript/Javascript 文件时遇到错误。

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets(182,5): error MSB3021: Unable to copy file "C:\Builds\XXX\XXX Continuous Integration\src\XXX\Trunk\XXX\XXX.Web\Content\Scripts\Admin\Reports.js" to "C:\Builds\XXX\XXX Continuous Integration\bin_PublishedWebsites\XXX.Web\C:\Builds\XXX\XXX Continuous Integration\src\XXX\Trunk\XXX\XXX.Web\Content\Scripts\Admin\Reports.js". The given path's format is not supported.

看起来输出路径构建不正确 - 正在第二次添加输出目录。升级到 Visual Studio 2015 Update 1 后是否有其他人遇到此问题?

是的,在安装 Update 1 后我也看到了这个(虽然在本地 — 我们不使用 TFS,但我们使用签入的 Microsoft.WebApplication.targets 文件)。它实际上将文件很好地复制到磁盘对我来说,但构建失败并过早结束。此外,在某个 directory/TypeScript 模块中,仅针对数百个文件中的 16 个文件(.js.js.map)生成错误消息。我不确定它是否只是消除了其余的错误,但我尝试重命名目录名称以防它的名称出现问题(它被命名为 Common)。没有骰子。

作为解决方法,您可以通过向 TFS 构建定义添加 MSBuild 参数来禁用复制到 _PublishedWebsites,如下所示:

/p:Disable_CopyWebApplication=True

由 1.7.6 版 typescript 解决: http://go.microsoft.com/fwlink/?LinkID=717098

已过时:

作为解决方法,我找到了两个选项:

A​​) 预编译(遗留) - TS 文件标记为内容 - 在开发 VS 上将 TS 预编译为 JS 和 MAP,包含在项目中,签入

B) 在 TypeScript 构建选项卡中使用 "Combine Javascript output info one file" 并设置为 Scripts\app.js

解决方法:

1) 创建发布配置文件“Web 部署包

2) 添加到您的构建定义中:

/p:Disable_CopyWebApplication=True /p:DeployOnBuild=true; 
PublishProfile=publish_profile_name

此问题已在 Typescript 1.7.6 版中修复。升级以解决构建问题。

我不是 100% 确定我们遇到了同样的问题,但我听从了@Paul 的建议并进行了升级。这肯定有效。

我在这里发帖是因为我必须升级 "TypeScript for Visual Studio 2015" 在 TFS 构建服务器上,并希望明确这一点。

这是 link 到 2.0 的升级 https://www.microsoft.com/en-us/download/details.aspx?id=48593