【问题标题】:Converting portable to .Net Standard builds locally but not using Team Build在本地转换可移植到 .Net Standard 构建,但不使用 Team Build
【发布时间】:2017-12-28 13:55:52
【问题描述】:

我在将 Portable C# 项目转换为 .Net Standard 2.0 时遇到问题。

我遵循了 Adam Pedley 在Upgrade PCL to .NET Standard Class Library 中概述的方法,终于让一切都在本地工作。但是,在我们的构建服务器上排队时,我遇到了以下错误:

C:\Program Files\dotnet\sdk\2.0.3\Sdks\Microsoft.NET.Sdk\build\Microsoft.PackageDependencyResolution.targets(323,5):错误:资产文件 'D:\Builds\Agent- 57-01_work\11\s\MyProject\obj\project.assets.json' 未找到。运行 NuGet 包还原以生成此文件。 [D:\Builds\Agent-57-01_work\11\s\MyProject\MyProject.csproj]

我们的构建服务器正在运行代理版本 2.120.2 并具有 Visual Studio 15.4.5。安装。

【问题讨论】:

  • 您的构建是否包含 NuGet 还原或您的 MSbuid 调用是否包含 /restore 参数?
  • @MartinUllrich 我们将 NuGet 安装程序任务设置为 NuGet 3.0.0 版。将其更改为 4.0.0 解决了该问题。

标签: tfsbuild .net-standard


【解决方案1】:

请使用最新的 NuGet(您可以尝试 Nuget 4.3.0 版)来恢复包。

如果您使用的是 VSTS,那么您可以使用 NuGet Tool Installer 来安装 Nuget 版本 4.3.0。

对于本地 TFS,只需遵循以下解决方法:(有关详细信息,请参阅 Using the latest NuGet in your build。)

因为 NuGet 工具安装程序在 TFS 版本中不可用 在 TFS 2018 之前,有一个推荐的解决方法来使用版本 在 Team Build 中使用 NuGet > 4.0.0。

  1. 添加任务(如果尚未添加)。如果您有“NuGet 还原” 进入目录(可能在弃用任务部分), 将其插入您的构建中。否则,插入“NuGet”步骤。
  2. 为您的 NuGet/NuGet Installer步骤,使用任务下的版本选择器 名称选择版本“0.*”。
  3. 在高级部分,设置 NuGet “自定义”的版本和 NuGet.exe 的路径为 $(Build.BinariesDirectory)\nuget.exe
  4. 在您的 NuGet 步骤之前,添加一个 “PowerShell”步骤,选择“Inline Script”作为Type,输入这个 PowerShell 脚本作为内联脚本,并输入“4.3.0”(或任何 此列表中的 NuGet 版本)作为参数。

还可以参考以下线程:

【讨论】:

  • @Tore Østergaard 你解决了这个问题吗?有更新吗?
  • 我们在 NuGet 版本 3.3.0 的构建集中有一个 NuGet 安装程序任务。将其更改为 4.0.0 解决了该构建的问题。我目前正在调查另一个似乎没有使用 NuGet 安装程序任务的构建中的类似问题。
猜你喜欢
  • 1970-01-01
  • 2018-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-31
  • 2011-05-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多