2016-02-10 12 views
6

Tôi đang cố gắng tạo gói NuGet có phụ thuộc vào System.Net.Http (cần HttpClient). Đối với phiên bản khung 4.5.1, hội đồng này là một phần của BCL. Hoewever, trong 4.0 nó không phải là. Tôi tin rằng nó có biên dịch chính xác với các báo cáo điều kiện thích hợp trong csproj.Làm cách nào tôi có thể chỉ định các phụ thuộc khác nhau cho các phiên bản khác nhau của khung công tác .NET trong gói NuGet tùy chỉnh?

Vấn đề tôi đang vật lộn là khi tôi tham khảo gói này trong dự án 4.5.1, nó kéo phụ thuộc vào Microsoft.Net.Http. Tôi thực sự chỉ muốn phụ thuộc vào Microsoft.Net.Http cho net40.

Dưới đây là tập tin nuspec tôi:

<?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> 

Trong VS, gói NuGet cho thấy điều này:

.NETFrameworkVersion=v4.0

Nhưng một lần nữa, tôi là những người phụ thuộc cũng đang được kéo vào khi sử dụng dự án với khung mục tiêu 4.5.1. Mà tôi không muốn. Bất kỳ trợ giúp được đánh giá cao.

Trả lời

4

Cần cụ thể hơn khi xác định phụ thuộc theo phiên bản khung.

<?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

tiêu biểu ... sau khi vật lộn với điều này trong nhiều giờ, tôi đưa ra những câu trả lời phút sau khi công bố câu hỏi.

+0

Đúng. Sự xấu xí là nếu bạn không chỉ định .NET 4.5 rõ ràng nó giả định .NET 4 cài đặt nên được chọn. Nhiều thừa kế tương tự nếu bạn kiểm tra các thông số kỹ thuật. –

Các vấn đề liên quan