如何切换.net运行时?

时间:2012-04-03 11:26:11

标签: .net version

我修改了.exe.config并添加了以下行

<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>

2 个答案:

答案 0 :(得分:0)

我认为问题是你正在使用的版本字符串。来自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"/>

答案 1 :(得分:0)

看起来我找到了原因 - bootstrapper使用CorBindToRuntimeEx并且msdn告诉这个案例启动元素被忽略

Jon Skeet - 非常感谢你; - )