2017-06-09 14 views
0

私はVS2017と、新しいcsprojファイル形式を使って、nugetパッケージを作成しています。あなたはそれを構築する際に細かい(TargetFrameworks == net45)の作品<frameworkAssembly>をcsprojから生成されたnugetパッケージに追加するには

<ItemGroup> 
    <Reference Include="System.Net" /> 
</ItemGroup> 

:私csprojファイルで

は、私は、次があります。しかし、それをNugetパッケージにパックすると、ターゲットパッケージにそれを持っていてほしいです

<frameworkAssemblies> 
    <frameworkAssembly assemblyName="System.Net" targetFramework="net45" /> 
</frameworkAssemblies> 

この新しいツールでどうすればいいですか?

答えて

1

これは現在の1.0.*ツールの制限です。 ".NET SDK"の1.1.*2.0.*バージョンでは、すべて<Reference>要素が結果として得られるNuGetパッケージにフレームワークアセンブリとして追加されます(Pack="false"でマークされていない限り)。これらの変更は、VS 2017 15.3(執筆時点ではまだリリースされていません)の一部となります。私は、.NETコアランタイムバージョンではなく、ツール(dotnet --versionがインストールされたSDK)バージョンについて話しています。

パッケージターゲットの現在のプレビューパッケージを使用して、SDKで提供されているプレビューパッケージを上書きする方法があります。これは非常に危険な方法であり、新しい1.1または2.0ツールを使用すると削除する必要があります。

<Project> 
    <PropertyGroup> 
    <NuGetBuildTasksPackTargets>junk-value-to-avoid-conflicts</NuGetBuildTasksPackTargets> 
    </PropertyGroup> 
    <Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" /> 

    <!-- All your project's other content here --> 

    <ItemGroup> 
    <PackageReference Include="NuGet.Build.Tasks.Pack" Version="4.3.0-preview1-4045" PrivateAssets="All" /> 
    </ItemGroup> 
    <Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" /> 
</Project> 

また、この回避策の情報は、この回避策に関する情報を参照してください。

関連する問題