2013-05-31 5 views
10

У меня есть проект, который нацелен на .Net 4.0, а одна из ссылочных ассемблеров - .Net 4.5.Обновление до .Net 4.5 приводит к сбою сборки?

Пока не установлен .Net 4.5 это работает нормально, однако после установки я получаю пять предупреждений относительно целевой версии .Net вдоль этих линий:

* Основная ссылка «xxxx.Library, Version = 1.0.0.1, Culture = neutral, processorArchitecture = MSIL "не удалось разрешить , потому что оно было построено на основе рамки .NET Framework, Version = v4.5" . Это выше, чем версия в настоящее время целевой рамках ".NETFramework, Version = v4.0"

И это:

Первичный эталонный" Microsoft.TeamFoundation.Build.Workflow, Версия = 10.0.0.0, Культура = нейтраль, PublicKeyToken = b03f5f7f11d50a3a, processorArchitecture = MSIL "не может быть разрешена, поскольку она имеет косвенную зависимость от сборки фреймворка" System.IO.Compression, Version = 4.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089 " , который не может быть разрешен в целевой среде. «.NETFramework, Version = v4.0». Чтобы решить эту проблему, либо удалить ссылку "Microsoft.TeamFoundation.Build.Workflow, Version = 10.0.0.0, Culture = нейтрально, PublicKeyToken = b03f5f7f11d50a3a, processorArchitecture = MSIL" или перенастроить приложение к рамочной версии, которая содержит «System.IO.Compression, Версия = 4.0.0.0, Культура = нейтраль, PublicKeyToken = b77a5c561934e089». Тесты

Почему Visual Studio ненавидит меня? Если он может скомпилировать до обновления до версии 4.5, целевая структура не изменилась, и она все еще работает для коллеги на VS2010 с .Net 4, почему меня набивают?

+0

У меня такая же проблема, и, похоже, это происходит только с установленной .NET Frameworks 4.5. Мой проект нацелен на фреймворки версии 4.0, а разборка моей DLL, на которую ссылается, показывает, что сборка также была создана с таргетингами на фреймворках версии 4.0. Тем не менее, я получаю неверную ошибку, что ссылка на DLL была построена с таргетингом на версию 4.5 фреймворков. http://stackoverflow.com/questions/18360561/the-primary-reference-could-not-be-resolved-because-it-was-built-against-a-highe – Dude0001

ответ

10

Сообщение об ошибке объясняет проблему - приложение .NET 4 не может ссылаться на DLL .NET 4.5. Измените приложение на .NET 4.5, а также измените dll на .NET 4.

+0

Зачем это работало до обновления до 4.5 тогда? Все компилируется с радостью и без предупреждений или ошибок? – Dave

+0

Как и в случае, если я удалю .Net 4.5, эта ошибка уходит, и я могу скомпилировать проект ...? – Dave

+2

За исключением, может быть, не очевидно, так как вопрос предполагает, что сборка всегда была 4,5 и работала ранее, но однажды .NET 4.5 был установлен, по какой-то причине он прекратил это делать. – Chris

5

Это связано с тем, что по причинам, наиболее известным Microsoft, .NET Framework 4.5 является обновлением на месте, которое replaces вашей .NET Framework 4 файла (а не бок о бок). Если вы посмотрите в C: \ Windows \ Microsoft.NET, вы не найдете папку 4.5 - она ​​заменит файлы в папке 4.0.

Итак, причина, по которой она была скомпилирована, заключается в том, что dll была dll .Net 4.0. Теперь он был заменен на 4.5.

Смежные вопросы