Próbuję utworzyć pakiet NuGet, który ma zależność od System.Net.Http
(potrzebujesz HttpClient). W przypadku wersji szkieletowej 4.5.1 ten zestaw jest częścią BCL. Dookoła, w 4.0 to nie jest. Uważam, że poprawnie kompiluje się z odpowiednimi instrukcjami warunkowymi w csproj.Jak mogę określić różne zależności dla różnych wersji platformy .NET w niestandardowym pakiecie NuGet?
Problem, z którym obecnie walczę, polega na tym, że kiedy odwołuję się do tego pakietu w projekcie 4.5.1, pobiera zależność od Microsoft.Net.Http
. Naprawdę chcę tylko polegać nadla net40.
Oto mój nuspec file:
<?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>
w VS, pakiet Nuget pokazuje to:
Ale znowu, ja te zależności są również pociągnął w podczas korzystania z projekt z ramą docelową 4.5.1. Którego nie chcę. Każda pomoc jest doceniana.
Tak. Brzydota polega na tym, że jeśli nie zostanie wyraźnie określony .NET 4.5, zakłada się, że ustawienia .NET 4 powinny zostać wybrane. Wiele podobnych dziedziczenia po sprawdzeniu specyfikacji. –