Я так понимаю, все .net 4.x.x
версии выпуска находятся на месте обновления. Я уже прочитал post и аналогичный вопрос SO , но все же я не полностью понимаю поведение приложения во время выполнения в контексте следующих двух параметров конфигурации в моем приложении:
<compilation debug="true" targetFramework="4.x.x" />
<httpRuntime targetFramework="4.y.y" />
Я понимаю, что настройка <httpRuntime targetFramework="4.y.y" />
является лишь краткой формой и фактически расширяется до следующих настроек:
<compilation targetFramework="" />
<machineKey compatibilityMode="" />
<pages controlRenderingCompatibilityVersion="" />
Предполагая, что моё понимание выше верно, я хотел бы подтвердить то же самое и прояснить следующие сомнения:
Если настройка <compilation targetFramework />
уже существует, то я предполагаю, что она переопределяет сгенерированную из-за <httpRuntime targetFramework />
Например, если в моем файле web.config присутствуют оба приведенных ниже параметра:
<compilation debug="true" targetFramework="4.6.1" />
<httpRuntime targetFramework="4.7.2" />
Тогда для эффективной работы во время выполнения это означает:
<compilation targetFramework="4.6.1" />
<machineKey compatibilityMode="" />
<pages controlRenderingCompatibilityVersion="" />
Мне трудно понять, какой параметр выше говорит среде выполнения, что приложение скомпилировано с 4.6.1
, но хочет использовать возможности. net Framework установлен на целевой машине (скажем, 4.7.2
) ИЛИ какой параметр говорит среде выполнения, что приложение не хочет использовать 4.7.2
f и предпочел бы работать в режиме причуды.