2017-04-13 10 views
1

Visual Studioの使用2015 ASP.NETコアアプリケーションはクラスライブラリを使用 ASP.NETコアアプリケーションおよびクラスライブラリには、プロジェクトの作成時に.NET Framework 4.5.2プラットフォームがありました クラスライブラリに.NETStandardライブラリ1.6.0の依存関係がある このアプリケーションは.NETコアターゲットランタイムで起動するのか、完全な.NET Frameworkが必要ですか?ここで.NET標準ライブラリ1.6.0 .NETコアアプリケーションへの依存

は、.NETの標準1.6 https://docs.microsoft.com/en-us/dotnet/articles/standard/library .NETコア1.0実装によると、いくつかのスナップショット

solution explorer of .net core class library

project.json of .net core class library

答えて

1

です。

はい、.NET Standard 1.6ライブラリは.NETコアアプリケーションと互換性があります。しかし.NETフレームワークのバージョンがまだ1.6を実装していないので、.NET 4.5.2アプリケーションはであり、は動作しません。

1

添付のスクリーンショットによると、クラスライブラリは.NET Coreとのみ互換性があり、.NET Frameworkでは必要ありません。ところで

、それはNETStandard.Library、NuGetパッケージと「.NET標準」、ターゲットフレームワークの違いを理解することが重要です。一言で言えば

.NET標準、ターゲットフレームワークは、APIの仕様です。 netstandard1.6だけを対象とするプロジェクトはまだ.NETコアアプリケーションではありません。ここでは非常に便利なアナロジーです: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が分かるようにします。つまり、.NET Standard 1.6以上のものに依存するものとして "NETStandard.Library v1.6.0"を追加することができます。

また、FYI - project.jsonの代わりにVisual Studio 2017とcsprojを使用する場合は、プロジェクトファイルに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>

関連する問題