Подтвердить что ты не робот

Ссылка на сборку .net framework 4.5.1 в проекте 4.0

Как я могу сделать проект 4.0 с ссылкой на 4.5. В модульных тестах я не могу построить решение, и это дает мне это предупреждение.

Предупреждение 2 Первичная ссылка "PR.Wallet" не может быть решена потому что он был создан против ".NETFramework, Version = v4.5.1", фреймворк. Это более высокая версия, чем framework ".NETFramework, Version = v4.0". PR.Wallet.Tests

4b9b3361

Ответ 1

.Net frameworks (v2.0 или выше) не являются передовыми.. Вы не можете ссылаться на сборку .Net 4.5 в проекте .Net 4.0.

Смотрите: Совместимость версий в .NET Framework

Вы также можете увидеть: Совместимость версий

Степень поддержки .NET Framework для обратной и прямой совместимость зависит от версии..NET Framework поддерживает оба обратной и прямой совместимости для приложений, созданных с использованием только версия 1.1. Он не поддерживает форвардную совместимость в приложений, созданных с использованием версии 2.0. В контексте .NET. Framework, обратная совместимость означает, что приложение создано использование ранней версии .NET Framework будет работать на более поздней версии версия. И наоборот, передовая совместимость означает, что приложение созданный с использованием более поздней версии .NET Framework, будет работать на более ранняя версия.

.NET Framework обеспечивает высокую степень поддержки для обратной совместимости. Например, большинство приложений создано использование версии 1.0 будет выполняться в версии 1.1 и приложениях, используя версия 1.1 будет работать на версии 2.0..NET Framework также поддерживает совместимость только для версии 1.1. Однако для форварда вам может потребоваться изменить приложение, чтобы приложение работает как ожидалось. Приложения, созданные с версией 2.0 не будет работать в более ранних версиях .NET Framework. Для обоих обратная и прямая совместимость, изменение в .NET Framework который помогает улучшить безопасность, правильность или функциональность, может также повысить уровень совместимости.

Ответ 2

Похоже, вам нужно изменить структуру библиотеки. И поскольку это всего лишь проект модулей, я не понимаю, почему вы этого не сделали.

В Visual Studio:

  • Щелкните правой кнопкой мыши на своем проекте
  • Выберите "Свойства"
  • Выберите вкладку "Приложение"
  • Измените целевую структуру на желаемую структуру.

Если вы не видите .NET Framework 4.5.1 в качестве опции, убедитесь, что он установлен.

Ответ 3

Вы не можете ссылаться на сборку 4.5.1 в проекте, ориентированном на 4.0. Но... вы можете вызвать метод сборки 4.5.1 в проекте, который нацелен на 4.0, вызвав его динамически, предполагая, что установлен 4.5.1:

var assembly= Assembly.LoadFrom(...);
var type = assembly.GetType(...);
var method = type.GetMethod(...);
var res = method.Invoke(null, args);

Обратите внимание, что для этого подхода могут быть ограничения, но я счел это полезным для вызова подпрограмм Roslyn при использовании VS2010.