2016-02-10 3 views
6

System.Net.Http(HttpClientが必要です)に依存するNuGetパッケージを作成しようとしています。フレームワークバージョン4.5.1の場合、このアセンブリはBCLの一部です。 Hoewever、4.0ではそうではありません。私はcsprojの適切な条件文で正しくコンパイルしていると信じています。カスタムNuGetパッケージの異なるバージョンの.NETフレームワークに異なる依存関係を指定する方法を教えてください。

私が現在対処している問題は、4.5.1プロジェクトでこのパッケージを参照すると、Microsoft.Net.Httpの依存関係が発生するということです。私は本当にnet40のMicrosoft.Net.Httpに依存したいだけです。

.NETFrameworkVersion=v4.0

しかし、再び、私はね、それらの依存関係も使用しているときに引っ張られている:

<?xml version="1.0"?> 
<package> 
    <metadata> 
    <id>MyApp</id> 
    <version>$version$</version> 
    <title>MyApp</title> 
    <authors>Me</authors> 
    <owners>Me</owners> 
    <requireLicenseAcceptance>false</requireLicenseAcceptance> 
    <description>Description</description> 
    <releaseNotes>Initial release</releaseNotes> 
    <copyright>Copyright 2016</copyright> 
    <dependencies> 
     <group> 
     <dependency id="Newtonsoft.Json" version="8.0.2"/> 
     </group> 
     <group targetFramework="net40"> 
     <dependency id="Microsoft.Bcl" version="1.1.10" /> 
     <dependency id="Microsoft.Bcl.Build" version="1.0.14" /> 
     <dependency id="Microsoft.Net.Http" version="2.2.29" /> 
     </group> 
    </dependencies> 
    </metadata> 
    <files> 
    <file src="bin\release\**\MyApp.dll" target="lib" /> 
    </files> 
</package> 

はVSでは、NuGetパッケージは、この例を示します

は、ここに私のnuspecファイルですターゲットフレームワークを持つプロジェクト4.5.1。私は欲しくない。どんな助けもありがとうございます。

答えて

4

フレームワークバージョンによって依存関係を定義する場合には、より具体的にする必要があります。

<?xml version="1.0"?> 
<package> 
    <metadata> 
    <id>MyApp</id> 
    <version>$version$</version> 
    <title>MyApp</title> 
    <authors>Me</authors> 
    <owners>Me</owners> 
    <requireLicenseAcceptance>false</requireLicenseAcceptance> 
    <description>Description</description> 
    <releaseNotes>Initial release</releaseNotes> 
    <copyright>Copyright 2016</copyright> 
    <dependencies> 
     <group targetFramework="net451"> 
     <dependency id="Newtonsoft.Json" version="8.0.2"/> 
     </group> 
     <group targetFramework="net40"> 
     <dependency id="Newtonsoft.Json" version="8.0.2"/> 
     <dependency id="Microsoft.Bcl" version="1.1.10" /> 
     <dependency id="Microsoft.Bcl.Build" version="1.0.14" /> 
     <dependency id="Microsoft.Net.Http" version="2.2.29" /> 
     </group> 
    </dependencies> 
    </metadata> 
    <files> 
    <file src="bin\release\**\MyApp.dll" target="lib" /> 
    </files> 
</package> 

Both versions of framework

典型的な...時間これで苦労した後、私は質問を投稿した後、回答分を思い付きます。

+0

はい。醜さは、.NET 4.5を明示的に指定しないと、.NET 4の設定を取得する必要があることを前提としています。仕様を確認すると、多くの同様の継承があります。 –

関連する問題