VSTS构建服务器上的AutoMapper 6.2.2还原失败

时间:2018-01-16 21:11:14

标签: nuget azure-devops automapper

我的构建定义中的还原步骤失败,并显示以下错误:

  

错误NU1100:无法解析' AutoMapper(> = 6.2.2)' for' .NETCoreApp,Version = v2.0'。

这是在使用AutoMapper的.NETCoreApp 2.0中。在VS 2017中本地还原成功。本地我使用的是dotnet sdk 2.0.0和nuget 4.3.1。在VSTS(云)服务器上,我指定了最新的nuget版本4.5.0。我尝试了很多其他版本,包括4.3.1但没有成功。

我知道有一个较旧的类似问题here,但在我看来,这个问题从未得到过令人满意的回答。

如果我查看VS中的元数据,在其中一个Automapper文件的顶部我可以看到:

  

装配AutoMapper,版本= 6.2.2.0,Culture = neutral,PublicKeyToken = be96cd2c38ef1005
  // C:\ Users \ randyg.nuget \ packages \ automapper \ 6.2.2 \ lib \ netstandard1.3 \ AutoMapper.dll

从这里你可以看到它采用netstandard1.3版本,这是正确的。我想知道构建服务器上的nuget是否正在寻找netcoreApp2.0文件夹,而不是netstandard1.3文件夹?按照这个理论,我尝试将其添加到我的.csproj文件中:

<AssetTargetFallback>$(AssetTargetFallback);netstandard1.3</AssetTargetFallback>

我的理论是,如果无法找到netcoreapp2.0版本,这将告诉nuget寻找netstandard1.3版本的automapper。但是,这没有任何效果。后来我在后面看到这个后备已经自动添加了。

如果有人有任何想法我会非常感激。我把头发拉出(剩下的是什么),因为这是唯一一个给我带来麻烦的包裹,对我的项目来说这是一个至关重要的一个。

在构建服务器上我也使用.NET Core sdk 2.0.3,如果这很重要。

1 个答案:

答案 0 :(得分:1)

这就是我解决这个问题的方法:因为它似乎可能与我的目标是netcoreapp2.0有关,所以我尝试添加一个额外的&#39;虚拟&#39;项目到我的解决方案,其目标= netstandard1.3。在此配置中,还原/构建成功。我认为我必须为此目的维护这个虚拟项目,直到我尝试删除它,现在netcoreapp2.0解决方案仍然恢复正常没有它。我只能假设在TFS构建服务器NPM缓存中已经损坏了某些东西(尽管我已经尝试选中该复选框以禁用该缓存),并且一旦我让它成功一次,它就清除了所有问题。