2016-09-20 186 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/

相關問題