我已经安装了.NET 2.0运行时,然后我又安装了.NET 4.0运行时,所以我两个都有。当我运行一个.NET应用程序时,是否有一种方法可以强制使用哪个运行时?
编辑/澄清: 我的意思是不考虑应用程序是如何构建的。我认为.NET 4.0运行时可以运行5年前针对2.0运行时(oldprogram.exe)编译的.NET程序。现在我正在一台同时拥有两个运行时的机器上,这两个运行时都可能处理oldprogram.exe。哪个运行时被选择?我能影响哪个运行时被选择吗?
我已经安装了.NET 2.0运行时,然后我又安装了.NET 4.0运行时,所以我两个都有。当我运行一个.NET应用程序时,是否有一种方法可以强制使用哪个运行时?
编辑/澄清: 我的意思是不考虑应用程序是如何构建的。我认为.NET 4.0运行时可以运行5年前针对2.0运行时(oldprogram.exe)编译的.NET程序。现在我正在一台同时拥有两个运行时的机器上,这两个运行时都可能处理oldprogram.exe。哪个运行时被选择?我能影响哪个运行时被选择吗?
是的,在 .exe.config 文件中使用 <supportedRuntime>
元素。例如:
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>
<assemblyBinding>
元素上使用appliesTo属性来将程序集绑定引用重定向到.NET Framework程序集的特定版本。这个可选属性使用.NET Framework版本号来指示它适用于哪个版本。如果没有指定appliesTo属性,则<assemblyBinding>
元素适用于所有版本的.NET Framework。