Обновление до .Net 4.5 вызывает сбой сборки?

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

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

Основная ссылка »xxxx.Library, версия = 1.0.0.1, культура = нейтральная, процессорная архитектура = MSIL " не может быть решена, потому что он был построен против ".NETFramework, Version = v4.5" фреймворк. Это более высокая версия, чем в настоящее время целевые рамки ".NETFramework, Version = v4.0"

И это:

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

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

 Dude000121 авг. 2013 г., 17:00
У меня похожая проблема, и, похоже, это происходит только с установленным .NET Frameworks 4.5. Мой проект нацелен на фреймворки версии 4.0, и разборка моей библиотеки DLL, на которую ссылаются, показывает, что сборка была построена на фреймворках версии 4.0. Тем не менее, я получаю недопустимую ошибку, что библиотека DLL, на которую ссылаются, была построена для версии 4.5 платформ.stackoverflow.com/questions/18360561/...

Ответы на вопрос(2)

Решение Вопроса

ки на .NET 4.5 dll. Измените ваше приложение на .NET 4.5 или верните dll обратно на .NET 4.

 Chris31 мая 2013 г., 13:54
@thecoop: сборка .NET4.5 называется ссылочной сборкой. Я предполагаю, что это означает, что это внешняя сборка, которая неt скомпилирован в процессе сборки, поэтому ваше предположение о том, что он собирается как .NET 4, кажется совершенно неожиданным.
 nuzzolilo12 февр. 2014 г., 04:04
@ thecoop Кажется, это противоречитstackoverflow.com/a/12631425/881111.
 Chris31 мая 2013 г., 13:50
За исключением, может быть, неочевидного, поскольку вопрос предполагает, что сборка всегда была 4.5 и работала ранее, но после установки .NET 4.5 он по какой-то причине перестал ее разрешать.
 thecoop31 мая 2013 г., 13:50
Предупреждений от VS нетнеизвестная версия фреймворка ' или что-то типа того? Я подозреваю, что это на самом деле компиляция .NET 4.5 DLL как. NET 4, как. NET 4.5 не былот доступно. В любом случае, это не должно работать в первую очередь. Если это так, это была случайность. Измените структуру приложения, если вы хотите, чтобы она надежно работала.
 Dave31 мая 2013 г., 13:48
Почему это работало до обновления до 4.5 тогда? Все компилируется счастливо и без предупреждений или ошибок?
 Dave31 мая 2013 г., 13:49
Например, если я удалю .Net 4.5, эта ошибка исчезнет, и я смогу скомпилировать проект ...?
 Joetjah31 мая 2013 г., 13:51
Я бы изменил ответ, который вы дали, так как текущий не является ответом на вопрос.

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

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

Ваш ответ на вопрос