【问题标题】:TFS build server - Shared Projects build errorTFS 构建服务器 - 共享项目构建错误
【发布时间】:2017-04-16 05:29:20
【问题描述】:

我最近将一些共享项目添加到我现有的 Visual Studio 解决方案中,现在我们的 TFS 构建服务器上的构建过程失败了。

Project Type

我们的构建服务器能够构建以前版本的解决方案,并且在回滚后再次运行。 我的共享项目在 .csproj 文件中的引用方式与此类似。 (通过 Visual Studio 创建)

  <Import Project="..\xxx\yyy.projitems" Label="Shared" />

在 Visual Studio 和命令行下构建工作正常,但在 TFS 构建服务器上失败并出现以下错误:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets (187):“DestinationFiles”指 1 个项目,“SourceFiles”指2 件。它们必须具有相同数量的项目。

通过 cmd 执行 msbuild 命令时,一切正常。同样在构建服务器运行的同一台机器上。 在命令行上看起来是这样的:

"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" /nologo "xxx.sln" /m:1 /p:Configuration="Debug" /p:Platform="Any CPU" 

任何想法为什么这不起作用?

【问题讨论】:

  • 您使用的是哪个版本的 TFS?
  • 我们有 TFS 2015 更新 2
  • 您使用的构建系统是什么? vNext 还是 XAML?您能否分享详细步骤,以便我们尝试重现此问题。
  • 您是否在项目文件中使用了“复制”任务?如果是,你能分享一下内容吗?
  • XAML,获取源并运行 RunMSBuild-Task 后失败。在 de Xaml 中是:

标签: visual-studio tfs msbuild


【解决方案1】:
  1. 在您的构建代理机器上,找到您的构建代理获取资源的源文件夹,并使用MSBuild命令行在源文件夹中构建项目,查看结果。

  2. 清理客户端计算机上的缓存文件夹。文件夹路径为:C:\Users\username\AppData\Local\Microsoft\Team Foundation\x.0\Cache

  3. 清理服务器机器上的缓存文件夹。文件夹路径为:C:\TfsData\ApplicationTier\_fileCache (TFS 2015)

  4. 重新添加所有程序集。

【讨论】:

  • MSBuild 命令在命令行中仍然有效。缓存文件夹已被清除,但仍然有同样的错误。
  • 您是否还在构建定义中添加参数 /nologo "xxx.sln" /m:1 /p:Configuration="Debug" /p:Platform="Any CPU"?
  • 不完全一样。我尝试使用相同的参数(如 /deployOnBuild)调用它,但它仍然可以在命令行上运行。
  • 我无法重现您的问题。我已经在我的 TFS 2015.3 + VS 2015.3 中进行了测试,通过将共享项目添加到现有项目,并在 .csproj 文件中添加引用,构建仍然通过。您可以将您的环境与我的环境进行比较并升级您的环境,以查看问题是否仍然存在。此外,您可以尝试配置新的构建代理,看看是否会重现此问题。
  • 很遗憾我没有升级我们的 tfs 的权限。我将尝试获得许可在 Visual Studio 团队服务中对其进行测试,以了解这是否是我们旧版本的问题。
【解决方案2】:

不幸的是,我无法让项目在我们的构建和 tfs 服务器上运行。但它适用于 Visual Studio Online 和新的构建系统。也许升级到最新的 TFS 版本会带来相同的结果。

【讨论】:

    猜你喜欢
    • 2018-02-24
    • 1970-01-01
    • 2016-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-28
    相关资源
    最近更新 更多