2017-04-13 4 views
1

Verwenden von Visual Studio 2015 ASP.NET Core-Anwendung verwendet Klassenbibliothek ASP.NET Core-Anwendung und Klassenbibliothek hatte .NET Framework 4.5.2-Plattform, wenn Projekte erstellen Klassenbibliothek haben .NETStandard Library 1.6.0-Abhängigkeit Wird diese Anwendung auf .NET Core-Ziellaufzeit gestartet oder es wird vollständige .NET Framework benötigt? Hier.NETStandard Library 1.6.0 Abhängigkeit in .NET Core-Anwendung

ist ein paar Schnappschüsse

solution explorer of .net core class library

project.json of .net core class library

Antwort

1

Gemäß Ihren angehängten Screenshots ist Ihre Klassenbibliothek nur mit .NET Core kompatibel und wird nicht mit .NET Framework benötigt.

By the way, ist es wichtig, den Unterschied zwischen NETStandard.Library, dem NuGet Paket und ".NET Standard", der Zielrahmen zu verstehen.

Auf den Punkt gebracht:

.NET Standard-, das Zielframework ist eine API-Spezifikation. Ein Projekt, das nur auf netstandard1.6 abzielt, ist noch keine .NET Core App. Hier ist eine sehr nützliche Analogie: https://gist.github.com/davidfowl/8939f305567e1755412d6dc0b8baf1b7

NETStandard.Library ist ein Paket https://www.nuget.org/packages/NETStandard.Library/1.6.0. Dies ist tatsächlich ein Metapaket, d. H. Es enthält Dutzende anderer Pakete wie System.Collections.Generic und System.Console. Diese enthalten den C# -Compiler mit Informationen darüber, was in .NET Standard (der API-Spezifikation) enthalten ist, damit er weiß, welche APIs Sie verwenden können. Dies bedeutet, dass "NETStandard.Library v1.6.0" als eine Abhängigkeit zu mehr als nur .NET Standard 1.6 hinzugefügt werden kann.

Auch, FYI - wenn Sie Visual Studio 2017 und Csproj anstelle von project.json verwenden, müssen Sie NETStandard.Library in Ihrer Projektdatei nicht auflisten. Es ist automatisch verfügbar.

1

Um dies zu beheben, habe ich folgendes zu dem csproj der NetStandard 1.6.1 Projekt:

<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>

Verwandte Themen