0

私はNet Standardプロジェクトを作成して、dotnetアプリケーションのpackコマンドを使用してNugetを使ってパッケージしました。4.7.1プロジェクトのNetStandard.LibraryでNetStandard 1.0 Nugetのドラッグを停止する方法を教えてください。

C:\Program Files\dotnet\dotnet.exe" pack src/Acp.Framework.Essentials 

これは、次のNugetパッケージのNetStandard 1.0クラスのアセンブリを作成します。

NuGet Package Explorer showing reference to netstandard1.0

私は4.7をターゲットにWindowsクラシックデスクトップ.N​​ETコンソールアプリケーションにVisual StudioでこのNugetパッケージを追加する場合。 1 NetStandard.Library 1.6.1 Nugetパッケージにドラッグすると、ファサードの長いリストです。これらのdllはbinフォルダにコピーされ、app.config内のすべてのリダイレクトが含まれます。

これらのファサードのインストール(Nugetの参照も出力フォルダへのコピーもありません)は必要ありません。アプリケーションにリダイレクトしたくありません。

4.7.1では、NetStandard.Libraryは必要ありません。私の理解は正しいのですか?

Nugetパッケージを引き込まないように変更する必要がありますか?何か間違っていますか?私は

<Project ToolsVersion="15.0" ... /> 
<TargetFrameworkVersion>v4.7.1</TargetFrameworkVersion> 

を持って消費するプロジェクトのprojのファイルで

私は、Visual Studio 2017 15.4.1および15.4.2でこれを試してみました。

私が直接DLLを参照する、またはその代わりNugetのプロジェクトが、それは私の理解では、4.7.1であなたがNetStandard.Libraryを必要としないということです

答えて

1

正常に動作します。場合私の理解は正しいのですか?

はい、あなたは正しいです。

NETStandard.Libraryパッケージは、標準ライブラリである.NETを定義する一連のNuGetパッケージを参照します。 Microsoft.AspNetCoreパッケージのように、パッケージにはdll自体は含まれておらず、他の多くのパッケージを参照しています。

さらに、NETStandard.Libraryパッケージは、通常、ライブラリではなくプロジェクトによって参照されます。したがって、NETStandardライブラリパッケージはライブラリによって参照されるべきではありません。そしてこの依存性は、バージョン2.0.4に変更された、あなたはターゲットフレームワーク.NET Standard 2.0でプロジェクトを作成することができます。

enter image description here

は、より詳細な情報についてはWhat is the NETStandard.Library metapackage?を参照してください。

また、あなたは次のように完全に暗黙的な参照を無効にすることなく、あなたのNuGetパッケージの依存関係として含まれているからNETStandard.Library依存関係を無効にすることができます:

<ItemGroup> 
    <PackageReference Update="NETStandard.Library" PrivateAssets="true" /> 
</ItemGroup> 

それとも、直接NuGetパッケージエクスプローラでその依存関係を削除することができますが。

これが役に立ちます。

+0

ありがとう、大いに助けてください。これは私が制御するNugetパッケージのための私の特定の問題を解決します。私がしていないものについての提案はありますか? –

関連する問題