System.Net.Http
'a bağımlı olan bir NuGet paketi oluşturmaya çalışıyorum (HttpClient'e ihtiyacınız var). Çerçeve sürüm 4.5.1 için, bu montaj BCL'nin bir parçasıdır. Hoewever, 4.0'da değil. Csproj'daki uygun koşullu ifadeleri doğru bir şekilde derlediğine inanıyorum.Özel bir NuGet paketindeki .NET çerçevesinin farklı sürümleri için farklı bağımlılıkları nasıl belirleyebilirim?
Şu anda güldüğüm sorun şu: 4.5.1 projesinde bu pakete başvurduğumda, bağımlılığı Microsoft.Net.Http
'dan alıyor. Ben sadece net40 için Microsoft.Net.Http
'a güvenmek istiyorum.
Ama yine, ben bu bağımlılıklar da kullanırken çekiliyor:
<?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 yılında Nuget paketi bunu gösterir:
İşte benim nuspec dosyasıdır Hedef çerçeveye sahip proje 4.5.1. Ben istemiyorum. Herhangi bir yardım takdir edilir.
Yep. Çirkinlik, .NET 4.5'ü açıkça belirtmezseniz, .NET 4 ayarlarının alınması gerektiğini varsayar. Spesifikasyonları kontrol ederseniz birçok benzer miras. –