Nuget Package Restore:目标上的.Net版本错误

时间:2016-04-07 18:14:02

标签: c#-4.0 mono nuget teamcity nuget-package-restore

出于某种原因,在使用TeamCity构建我的应用程序时,它坚持尝试安装" System.Runtime 4.0.20"。

然后我收到以下错误:

  

[update]警告:Package' System.Runtime 4.0.20'在...中不存在   项目' AkkaNeat.Tests.csproj' [20:04:08] [更新]删除了包   ' System.Resources.ResourceManager 4.0.0'来自' packages.config'   [20:04:08] [更新]删除了包' System.Linq 4.0.0'从   ' packages.config' [20:04:08] [更新]用于添加包   ' System.Runtime 4.0.10'项目' AkkaNeat.Tests.csproj'那   目标' net45'。 [20:04:08] [更新]无法安装包   ' System.Runtime 4.0.20'。您正在尝试将此软件包安装到   该项目针对的是.NETFramework,Version = v4.5',但是该软件包   不包含任何程序集引用或内容文件   与该框架兼容。有关更多信息,请联系   包裹作者。 [20:04:08] [更新]流程退出代码1   [20:04:09] [步骤2/4]步骤恢复NuGet包(NuGet安装程序)   失败

我无法理解为什么它坚持要添加包裹。在Xamarin和Visual Studio中,代理机器上的一切都很好。

我花了整整两天时间试图解决这个问题。我甚至尝试将不同版本的System.Runtime的引用显式添加到packages.json文件中。 Nuget仍坚持使用指定的版本。

1 个答案:

答案 0 :(得分:4)

您尝试安装它的软件包不支持您的项目所针对的.Net版本。要解决此问题,请将项目所针对的.Net版本更新为程序包System.Runtime 4.0.20支持的.Net版本(未在提供的输出中显示)。

步骤1:找到软件包支持的.Net版本。

您可以通过looking at the folder that it's installed under找到nuget包所需的版本。如果它位于文件夹/path/to/lib/net46path/to/lib/net451中,则分别表示.Net 4.6或.Net 4.5.1。

第2步:change your project's .Net version