我修改了.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>
答案 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 - 非常感谢你; - )