2016-09-20 189 views
11

在最新的Windows 10安装以及最新的Visual Studio 2015,netcore和nuget工具之后 - 我无法再将Nuget软件包安装到任何.net标准项目中。下面是一些例子输出:Netstandard1.x无法为netstandard1.x项目安装Nuget软件包

Restoring packages for 'ClassLibrary1'. 
Restoring packages for c:\users\zone1\documents\visual studio 2015\Projects\ClassLibrary1\ClassLibrary1\project.json... 
Package System.ComponentModel.EventBasedAsync 4.0.11 is not compatible with netstandard1.3 (.NETStandard,Version=v1.3). Package System.ComponentModel.EventBasedAsync 4.0.11 supports: 
    - monoandroid10 (MonoAndroid,Version=v1.0) 
    - monotouch10 (MonoTouch,Version=v1.0) 
    - net45 (.NETFramework,Version=v4.5) 
    - netcore50 (.NETCore,Version=v5.0) 
    - netstandard1.0 (.NETStandard,Version=v1.0) 
    - netstandard1.3 (.NETStandard,Version=v1.3) 
    - portable-net45+win8+wp8+wpa81 (.NETPortable,Version=v0.0,Profile=Profile259) 
    - win8 (Windows,Version=v8.0) 
    - wp8 (WindowsPhone,Version=v8.0) 
    - wpa81 (WindowsPhoneApp,Version=v8.1) 
    - xamarinios10 (Xamarin.iOS,Version=v1.0) 
    - xamarinmac20 (Xamarin.Mac,Version=v2.0) 
    - xamarintvos10 (Xamarin.TVOS,Version=v1.0) 
    - xamarinwatchos10 (Xamarin.WatchOS,Version=v1.0) 
One or more packages are incompatible with .NETStandard,Version=v1.3. 
Package restore failed for 'ClassLibrary1'. 

我创建的项目ClassLibrary1的便携式类库,目标改为netstandard1.3,不能安装任何的NuGet软件包显示netstandard1.3支持。 netstandard1.5和其他版本也一样。

我只是试图拉动和建设的源动力MailKit(支持.netstandard项目)来验证我没有设置我的项目错误,我得到了同样的问题:

Errors in C:\Users\zone1\Repos\MailKit\MailKit\MailKit.CoreFX.xproj 
    Package System.Net.NetworkInformation 4.1.0 is not compatible with netstandard1.3 (.NETStandard,Version=v1.3). Package System.Net.NetworkInformation 4.1.0 supports: 
     - monoandroid10 (MonoAndroid,Version=v1.0) 
     - monotouch10 (MonoTouch,Version=v1.0) 
     - net45 (.NETFramework,Version=v4.5) 
     - netcore50 (.NETCore,Version=v5.0) 
     - netstandard1.0 (.NETStandard,Version=v1.0) 
     - netstandard1.3 (.NETStandard,Version=v1.3) 
     - portable-net45+win8+wp8+wpa81 (.NETPortable,Version=v0.0,Profile=Profile259) 
     - win8 (Windows,Version=v8.0) 
     - wp8 (WindowsPhone,Version=v8.0) 
     - wpa81 (WindowsPhoneApp,Version=v8.1) 
     - xamarinios10 (Xamarin.iOS,Version=v1.0) 
     - xamarinmac20 (Xamarin.Mac,Version=v2.0) 
     - xamarintvos10 (Xamarin.TVOS,Version=v1.0) 
     - xamarinwatchos10 (Xamarin.WatchOS,Version=v1.0) 
    One or more packages are incompatible with .NETStandard,Version=v1.3. 

我已经这里发布了一些更多的细节:https://github.com/NuGet/Home/issues/3433

这一切工作之前我重新格式化一个全新的Windows安装。我错过了什么吗?

+0

你可以尝试运行 “nuget.exe当地人 - 清除所有” 命令? –

+0

这似乎解决了这个问题。谢谢!我要给这个问题提供一个更详细的答案,因为它看起来像是一个普遍的问题。 – zone117x

回答

9

由于@eddie-msft的小费,得到了一个工作解决方案。

下载最新的NuGet命令行util的从这里https://dist.nuget.org/index.htmlv3.5.0-rc1在投寄时)

然后运行:

nuget.exe locals -clear all

我确信有VS关闭并删除任何现有的项目。 lock.json文件。现在一切似乎按预期工作。

我发现这个问题发生在任何有Windows/VS /工具全新安装的系统上,所以很可能与他们的安装程序有关。

+0

只是修复了我破碎的nuget软件包安装。谢谢 – KSF

1

它看起来像是在工具中漏掉了一些东西,并且错误消息并不总是最清楚的。你能确保你已经运行都在这里安装程序:

Visual Studio 2015 Update 3(我猜你有这个)

.NET Core 1.0.1 - VS 2015 Tooling Preview 2

我真的不认为这是一个项目文件的问题,因为MailKit对你来说是失败的,我怀疑你打破了NuGet。如果这不起作用,另一位可能会给你一些好的信息是运行

Dotnet restore 

在项目目录中看看donet如何在没有Visual Studio的情况下处理它。

1

对于VS 2017年 - 更新15.3

您可以通过以下操作

编辑.csproj文件为.NET标准库解决这个问题,并添加这些行

<Project Sdk="Microsoft.NET.Sdk"> 

<PropertyGroup> 
<TargetFramework>netstandard1.4</TargetFramework> 
<PackageTargetFallback Condition=" '$(TargetFramework)' == 'netstandard1.4' ">$(PackageTargetFallback);dotnet5.6;portable-net45+win8</PackageTargetFallback> 
</PropertyGroup> 



Other stuff here 
</Project> 

PackageTargetFallback将允许您使用较旧的兼容软件包。

https://www.cameronmoten.com/2017/08/19/fixing-xamarin-with-net-standard-in-visual-studio-2017-v-15-3/

相关问题