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

12

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

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets(182,5): error MSB3021: 无法将文件 "C:\Builds\1\XXX\XXX Continuous Integration\src\XXX\Trunk\XXX\XXX.Web\Content\Scripts\Admin\Reports.js" 复制到 "C:\Builds\1\XXX\XXX Continuous Integration\bin_PublishedWebsites\XXX.Web\C:\Builds\1\XXX\XXX Continuous Integration\src\XXX\Trunk\XXX\XXX.Web\Content\Scripts\Admin\Reports.js"。 给定路径的格式不受支持。

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


1
你正在使用TFS 2015 Update1吗?你正在使用XAML构建还是vNext构建?你能提供你的步骤吗?我想重现你的场景,看看是否能得到相同的问题。 - Cece Dong - MSFT
Github上的问题:https://github.com/Microsoft/TypeScript/issues/5894 - Jiří Zídek
https://github.com/JiriZidek/Garbage/blob/master/Broken_build_TS17.zip - Jiří Zídek
谢谢,但我需要“诊断”日志,您可以在使用msbuild的/v:diagnostic /fl命令行选项时创建它。 - Paul van Brenk
发生这种情况的一个场景是在项目文件中指定了 $(OutDir),这通常只会在构建服务器上发生。我已经为此进行了修复。我们正在努力发布新版本,以便您可以根据自己的情况进行验证。 - Paul van Brenk
显示剩余3条评论
6个回答

2

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

已过时:

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

A)预编译(传统) - 将TS文件标记为Content - 在开发VS上将TS预编译为JS和MAP,包含在项目中,提交检查

B)在TypeScript生成选项卡中使用“将JavaScript输出合并到一个文件中”,并设置为Scripts\app.js


2

这个问题已经在Typescript 1.7.6版本中得到解决。请升级以解决构建问题。


升级 TFS 还是 Visual Studio?我在想我们是否需要在构建服务器上安装 TypeScript 更新。 - Don Rolling

2

解决方法:

1)创建发布配置文件“Web Deploy Package

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

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

这对我来说有效。尽管对于其他使用不同设置的人可能无效。看起来正确的修复措施将需要来自TypeScript团队。 - Paul

0

是的,我也遇到了这个问题(虽然是在本地 - 我们不使用TFS,但我们使用一个已检入的Microsoft.WebApplication.targets文件),在安装更新1后出现了这个问题。实际上,它对我来说可以将文件正确复制到磁盘上,但构建失败并提前结束。此外,错误消息仅针对某个目录/TypeScript模块中的16个文件(.js.js.map)生成。我不确定它是否只是压制了其余的错误,但我尝试重命名目录名称以查看其名称是否有问题(它被命名为Common)。没有用。


0

我不确定我们有完全相同的问题,但我按照 @Paul 的建议进行了升级。那肯定有效。

我在这里发布是因为我必须在 TFS 构建服务器上升级 "TypeScript for Visual Studio 2015" 并想要澄清这一点。

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


0
作为一种解决方法,您可以通过向TFS构建定义添加一个MSBuild参数来禁用将文件复制到_PublishedWebsites目录,就像这样:
/p:Disable_CopyWebApplication=True

实际上,我们只使用_PublishedWebsites内容,因此我们无法禁用其生成... - Jiří Zídek
顺便提一句,如果您想永久禁用_PublishedWebsites,您可以在相关项目的.csproj文件中加入以下内容:<Disable_CopyWebApplication>True</Disable_CopyWebApplication> - XDS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接