System.Net.Http konnte nicht behoben werden, die derzeit gezielt framework .NET 4.0
Bekam einen fiesen Fehler nach verschieben einer Lösung von Visual Studio 2010 auf 2012. Bauen ist in Ordnung und alles funktioniert perfekt localhost. Ich habe ein neues MVC4-Projekt, das erfordert .NET 4.5, also installierte ich das 4.5 framework auf dem server erstellen. Der build ist gut, aber MSBuild nicht kopieren DotNetOpenAuth.Core.dll aus Ihrem Paket Speicherort der Bin-dir. Das Problem liegt daran, obwohl die insbesondere die Ziele der 4.0 framework, ich glaube, MSBuild ist die überprüfung der Abhängigkeit vor .NET 4.5 framework-System.Net.Http assembly als Teil seiner CoreBuild.
Warnung code="MSB3268" Die primäre Referenz \packages\DotNetOpenAuth.Core.4.3.0.13117\lib\net40-full\DotNetOpenAuth.Core.dll" konnte nicht aufgelöst werden, weil es eine indirekte Abhängigkeit von der framework-assembly "System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", die nicht behoben werden konnte, in der derzeit gezielte framework. ".NETFramework,Version=v4.0". Um dieses problem zu beheben, entfernen Sie entweder die Referenz "c:\cc\kazork\code\trunk\src\packages\DotNetOpenAuth.Core.4.3.0.13117\lib\net40-full\DotNetOpenAuth.Core.dll" oder richten Sie Ihre Bewerbung an eine framework-version, die enthält " - System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
Hier ist mein Paket config:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="ChardinJs" version="1.0.3" targetFramework="net40" />
<package id="Microsoft.Net.Http" version="2.0.20710.0" targetFramework="net40" />
<package id="DotNetOpenAuth.AspNet" version="4.3.0.13117" targetFramework="net40" />
<package id="DotNetOpenAuth.Core" version="4.3.0.13117" targetFramework="net40" />
<package id="DotNetOpenAuth.OAuth.Consumer" version="4.3.0.13117" targetFramework="net40" />
<package id="DotNetOpenAuth.OAuth.Core" version="4.3.0.13117" targetFramework="net40" />
<package id="DotNetOpenAuth.OpenId.Core" version="4.3.0.13117" targetFramework="net40" />
<package id="DotNetOpenAuth.OpenId.RelyingParty" version="4.3.0.13117" targetFramework="net40" />
<package id="EntityFramework" version="5.0.0" targetFramework="net40" />
<package id="flexigrid" version="1.1.0" targetFramework="net40" />
<package id="jQuery" version="1.9.1" targetFramework="net40" />
<package id="Microsoft.AspNet.FriendlyUrls.Core" version="1.0.0" targetFramework="net40" />
<package id="Microsoft.AspNet.Membership.OpenAuth" version="1.0.1" targetFramework="net40" />
<package id="Microsoft.AspNet.SignalR.Core" version="1.1.1" targetFramework="net40" />
<package id="Microsoft.AspNet.SignalR.JS" version="1.1.1" targetFramework="net40" />
<package id="Microsoft.AspNet.SignalR.Owin" version="1.1.1" targetFramework="net40" />
<package id="Microsoft.AspNet.SignalR.SystemWeb" version="1.1.1" targetFramework="net40" />
<package id="Microsoft.AspNet.Web.Optimization" version="1.0.0" targetFramework="net40" />
<package id="Microsoft.Owin.Host.SystemWeb" version="1.0.1" targetFramework="net40" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net40" />
<package id="Newtonsoft.Json" version="5.0.5" targetFramework="net40" />
<package id="Owin" version="1.0" targetFramework="net40" />
<package id="PayPalCoreSDK" version="1.1.1" targetFramework="net40" />
<package id="PayPalMerchantSDK" version="2.3.98" targetFramework="net40" />
<package id="Select2.js" version="3.3.2" targetFramework="net40" />
<package id="toastr" version="1.2.2" targetFramework="net40" />
<package id="Twitter.Bootstrap" version="2.3.2" targetFramework="net40" />
<package id="WebGrease" version="1.3.0" targetFramework="net40" />
</packages>
Habe ich System.Net.Http referenziert und kopiert die Daten auf die Ablage. Das Projekt in Frage gezielt an das 4.0 framework. Meine version System.Net.Http ist für das 4.0 framework.
InformationsquelleAutor der Frage Brian Ogden | 2013-05-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
So, obwohl ich war kopieren System.Net.Http .NET 4.0 über das Nuget-Paket Hinzugefügt wird, wenn installiert, das DotNetOpenAuth Pakete, MsBuild auf meinem server zu bauen war die überprüfung der DotNetOpenAuth.Kern Abhängigkeit und überprüft wird .NET-Assemblys auf dem Computer installiert ist nicht das, was kopiert wird, in den Papierkorb. In meinem Fall:
War und kein System.Net.Http Montage in meinem
Verzeichnis, so glaube ich, MsBuild versucht einen Blick in die neu installierte .NET 4.5 Assemblys, auf meinem Rechner..\Assemblies\Microsoft\Framework.NETFramework\v4.5, wo es einen System.Net.Http.dll und das ist, warum, anstatt einen offensichtlichen Fehler, dass System.Net.Http.dll für .NET 4.0 Ziele nicht existiert, bekam ich eine Warnung über DotNetOpenAuth.Core.dll's dependency on-System.Net.Http, die gefunden werden können, aber nicht für die 4.0-framework das Projekt wurde targeting.
Kopierte ich einfach System.Net.Http .NET 4.0 DLL aus dem Paket zu
auf meinem server zu bauen und MsBuild war in der Lage zu vergleichen, um die richtige version System.Net.Htpp für 4.0 .NET framework-Abhängigkeiten überprüfen.
InformationsquelleAutor der Antwort Brian Ogden
Wenn dies fehlschlägt, müssen Sie möglicherweise auch anwenden .Net v4.5.1 dev pack wie diese unterstützt mehrere targeting. Ich hatte 4.5.1 installiert und die Baugruppen kopiert und hatte immer noch diesen Fehler. Die Installation der dev-pack von http://www.microsoft.com/en-us/download/details.aspx?id=40772 das Problem behoben und jetzt baut unter server 2012 r2.
InformationsquelleAutor der Antwort ClutchDude