Как а также работает вместе? - PullRequest
0 голосов
/ 28 марта 2020

Я так понимаю, все .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 и предпочел бы работать в режиме причуды.

...