Целевая структура
Помимо CLR, который напрямую связан со средой выполнения, targetFramework сообщит .NET, какие сборки должны быть нацелены.
<compilation targetFramework="4.x.x"/>
Выбор версии эталонных сборок .NET Framework.
используется при выполнении компиляции. (Примечание: Visual Studio требует, чтобы
этот элемент присутствует в Web.config, даже если мы автоматически выводим его.)
<httpRuntime targetFramework="4.x.x"/>
Это было сделано для того, чтобы делать то, что вы хотите: выбор поведения 4.7 с разработанным приложением 4.5. Обратите внимание, что у вас может быть какое-то поведение, это не волшебство :) (даже если в вашем случае с 4.5 по 4.7 не будет проблем ИМХО).
Эффект этого атрибута двоякий. Во-первых, он управляет поведением режима причуд CLR, как элемент <supportedRuntime>
в консольном приложении.
Во-вторых, <httpRuntime targetFramework="4.5" />
- это ярлык, который позволяет среде исполнения ASP.NET выводить широкий спектр параметров конфигурации.
Чек https://blogs.msdn.microsoft.com/webdev/2012/11/19/all-about-httpruntime-targetframework/
Сборочный переплет
В web.config
также имеется монтажная привязка , предназначенная для привязки ряда сборочных версий к конкретной версии.
Дело в том, что сборки .NET Framework (не .NET Core) основаны на версии CLR. Насколько я знаю, все сборки, включенные в фреймворк (не сателлиты, подобные MVC), будут 4.0.0.0
. Таким образом, вы не можете привязать сборку 4.x Framework
к 4.7 framework
, поскольку они будут иметь одинаковую версию сборки.
Но вы можете связать свою внешнюю (NuGet) зависимость.
В любом случае , за исключением случаев, когда у вас разные конфигурации веб-серверов с разными установленными платформами, самый простой способ - перекомпилировать ваше приложение, изменив целевую среду в свойствах проекта Visual Studio, как уже было сказано.