Появилась неприятная ошибка после перемещения решения из Visual Studio 2010 до 2012 года. Build отлично, и все работает отлично на локальном хосте. У меня есть один новый проект MVC4, для которого требуется .NET 4.5, поэтому я установил структуру 4.5 на сервере сборки. Сборка хорошо, но MSBuild не копирует DotNetOpenAuth.Core.dll из своего местоположения пакета в каталог Bin. Проблема в том, что, хотя конкретный проект нацелен на фреймворк 4.0, я считаю, что MSBuild проверяет зависимость от сборки .NET.Net System.Net.Http как части своего CoreBuild.
warning code = "MSB3268" Первичная ссылка \packages\DotNetOpenAuth.Core.4.3.0.13117\lib\net40-full\DotNetOpenAuth.Core.dll "не может быть решена, поскольку она имеет косвенную зависимость от сборки структуры" System.Net.Http, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a ", который не может быть разрешен в текущей целевой среде.".NETFramework, Version = v4.0 ". Чтобы устранить эту проблему, удалите ссылку" c:\cc\kazork\code\trunk\src\packages\DotNetOpenAuth.Core.4.3.0.13117\lib\net40-full\DotNetOpenAuth.Core.dll "или перенастроить приложение в версию фреймворка, содержащую" Систему. Net.Http, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a
Вот моя конфигурация пакета:
<?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>
У меня есть ссылка на System.Net.Http, и она копируется в корзину. Этот проект нацелен на платформу 4.0. Моя версия System.Net.Http предназначена для платформы 4.0.