使用本机主机应用程序在.Net 4上运行.Net 2 DLL

时间:2013-11-18 04:01:14

标签: c# .net dll clr

如您所知,我们可以通过以下内容使用应用程序配置文件(例如MyProject.exe.config)在不同的.net CLR版本上运行可执行的.net应用程序:

<?xml version="1.0"?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0"/>
        <supportedRuntime version="v2.0.50727"/>
      </startup>
</configuration>

我搜索这个技巧在.Net DLL文件上使用它但没有找到,我使用配置文件测试它,如MyDLL.dll.config,在开始我认为CLR不使用我的DLL配置文件(我的DLL建立使用.Net框架2和我的VM我只有.Net Framework 4)当我运行使用.Net DLL的本机应用程序时,它抛出异常:无法找到CLR版本或类似的东西。

在我的测试过程中,我看到一个奇怪的遭遇,如果我的DLL使用.Net Framework 4构建并在VM的窗口上运行,它运行正常(VM的Windows有.Net 4,这是正常的行为),但是如果我放了一个在我的DLL(MyDLL.dll.config)中配置文件,并在其中放入以下内容,它无法运行并抛出与.Net Framework 2相同的异常,这意味着CLR可以看到dll的配置文件并使用它! / p>

<?xml version="1.0"?>
<configuration>
    <startup> 
        <supportedRuntime version="v2.0.50727"/>
      </startup>
</configuration>

您对此问题的看法是什么?为什么.Net 4无法运行我的.Net 2 DLL但它可以通过相同的配置正确运行应用程序(exe文件)?

抱歉我的英语不好。

0 个答案:

没有答案