2017-04-13 154 views

回答

1

根據您附加的屏幕截圖,您的類庫只能與.NET Core兼容,並且不需要.NET Framework。

順便說一句,理解NETStandard.Library的NuGet包和「.NET標準」,目標框架之間的區別是很重要的。

簡而言之:

.NET標準,目標框架,是一個API規範。一個只針對netstandard1.6的項目還不是.NET Core應用程序。這裏是一個非常有用的類比:https://gist.github.com/davidfowl/8939f305567e1755412d6dc0b8baf1b7

NETStandard.Library是包https://www.nuget.org/packages/NETStandard.Library/1.6.0。這實際上是一個元包,即它包含許多其他軟件包,如System.Collections.Generic和System.Console。這些爲C#編譯器提供了有關.NET Standard(API規範)中內容的信息,以便它知道可以使用哪些API。這意味着可以將「NETStandard.Library v1.6.0」作爲一個依賴添加到.NET Standard 1.6中。另外,僅供參考 - 如果使用Visual Studio 2017和csproj代替project.json,則不需要在項目文件中列出NETStandard.Library。它是自動可用的。

1

要解決這個問題,我做了以下的NetStandard 1.6.1項目的csproj

<Project Sdk="Microsoft.NET.Sdk"> 
 
    <PropertyGroup> 
 
    <TargetFramework>netstandard1.6</TargetFramework> 
 

 
    <!-- BEGIN INSERTION --> 
 

 
    <NetStandardImplicitPackageVersion>1.6.0</NetStandardImplicitPackageVersion> 
 
    <PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback> 
 
    <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute> 
 
    <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute> 
 
    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute> 
 

 
    <!-- END INSERTION --> 
 

 
    </PropertyGroup> 
 

 
    <ItemGroup> 
 
    <PackageReference Include="[some stuff here]" Version="[some stuff here]" /> 
 
    <PackageReference Include="[some stuff here]" Version="[some stuff here]" /> 
 
    <PackageReference Include="[some stuff here]" Version="[some stuff here]" /> 
 
    </ItemGroup> 
 

 
    <ItemGroup> 
 
    <ProjectReference Include="[some stuff here]" /> 
 
    </ItemGroup> 
 

 
</Project>