2012-04-03 2 views
0

Я изменил .exe.config и добавил следующие строкиКак переключиться .net runtime?

<supportedRuntime version="v4.0.30319"/> 
<requiredRuntime version="v4.0.30319"/> 

Однако, Fusion показывает, что управляют время 2.0 используется. Как изменить версию во время выполнения?

UPD:

<configuration> 
<configSections> 
    <section name="VPI.AppEngine" type="VPI.Application.Base.ConfigurationSectionHandler, VPI.Application, Version=5.11.70.30, Culture=neutral, PublicKeyToken=fcf3ef807983b7b6"/> 
</configSections> 
<startup> 
    <supportedRuntime version="v4.0.30319"/> 
    <requiredRuntime version="v4.0.30319"/> 
</startup> 
<runtime> 
    <generatePublisherEvidence enabled="false"/> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <qualifyAssembly partialName="VPI.DesignRule" fullName="VPI.DesignRule,version=6.4.0.0,publicKeyToken=fcf3ef807983b7b6,culture=neutral"/> 
     <qualifyAssembly partialName="VPI.NetworkPlanning" fullName="VPI.NetworkPlanning,version=6.4.0.0,publicKeyToken=fcf3ef807983b7b6,culture=neutral"/> 
     <qualifyAssembly partialName="VPI.DataModel.ConfigurationData" fullName="VPI.DataModel.ConfigurationData,version=6.4.0.0,publicKeyToken=fcf3ef807983b7b6,culture=neutral"/> 
     <probing privatePath="Libraries;Libraries\ThirdParty"/> 
    </assemblyBinding> 
</runtime> 
<system.diagnostics> 
<trace autoflush="true"> 
    <listeners> 
    <clear/> 
    <remove name="Default"/> 
    <add name="TextLogListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="D:\1.txt" /> 
    </listeners> 
</trace> 
    <switches> 
     <add name="SystemMessageSwitch" value="4"/> 
    </switches> 
</system.diagnostics> 

+0

Просьба показать полный файл конфигурации. –

+0

Я добавил файл, но пропустил раздел с личными данными, потому что его размер больше 200 kb. –

ответ

1

Я считаю, что проблема является строка версии вы используете. Из документации supportedRuntime:

Строковое значение, определяющее версию среды CLR, поддерживаемой этим приложением. Первые три версии CLR указаны в «v1.0.3705», «v1.1.4322» и «v2.0.50727». Начиная с версии .NET Framework версии 4 требуются только основные и младшие номера версий (т. Е. «V4.0» вместо «v4.0.30319»). Рекомендуется использовать более короткую строку.

Таким образом, вы должны попробовать:

<supportedRuntime version="v4.0"/> 
<requiredRuntime version="v4.0"/> 
+0

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

+1

@MadHollander: Трудно сказать, если честно. Можете ли вы придумать короткую, но полную программу, которая демонстрирует проблему? Вы * пробовали * короткую версию? –

+0

Я пробовал короткую версию, но ничего не было. Основная проблема, с которой я не могу создать небольшое приложение для демонстрации. –

0

Похоже, я нашел причину - Загрузчик использует CorBindToRuntimeEx и MSDN говорит, что этот элемент случае запуска игнорируется

Jon тарелочкам - большое спасибо; -)