Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET Framework版本和COM对象_C#_.net_Com - Fatal编程技术网

C# .NET Framework版本和COM对象

C# .NET Framework版本和COM对象,c#,.net,com,C#,.net,Com,我们有一个MFC应用程序EXE,它承载COM对象,COM对象是应用程序的主要部分,因此我们可以动态地构建更多功能。最近,使用C#创建了新代码,并使COM可见,支持相同的接口。这些通常都是针对V2.X.Net运行时构建的。我们现在希望能够部署在可能只有V4.X.Net运行时的客户机上,但我们希望保持与V2.X代码的兼容性。如果主应用程序是.Net应用程序,那么我们可以在配置文件中使用。这不适用于非.Net主机应用程序 有人知道是否可以对.Net COM组件执行相同的操作,即指定它们可以在v4.X上

我们有一个MFC应用程序EXE,它承载COM对象,COM对象是应用程序的主要部分,因此我们可以动态地构建更多功能。最近,使用C#创建了新代码,并使COM可见,支持相同的接口。这些通常都是针对V2.X.Net运行时构建的。我们现在希望能够部署在可能只有V4.X.Net运行时的客户机上,但我们希望保持与V2.X代码的兼容性。如果主应用程序是.Net应用程序,那么我们可以在配置文件中使用。这不适用于非.Net主机应用程序


有人知道是否可以对.Net COM组件执行相同的操作,即指定它们可以在v4.X上运行的位置,而无需重新构建和重新定位它们吗?

什么是v4.X运行时?最新的框架版本是3.5,不包含对运行时的更改。它的运行时与2.0相同,并带有一些附加库。

我找到了答案,您需要在app.exe.config文件中添加更多内容,请参见下文

<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true">
        <requiredRuntime safemode="true" imageVersion="v4.0.21006" version="v4.0.21006"/>
        <supportedRuntime version="v4.0" sku="client" />
    </startup>
</configuration>


然后,这允许非托管主机exe文件启动非针对目标v4运行时构建的托管组件。

您好,感谢您的响应,我们正在使用.Net Framework 4 Beta 2(客户端配置文件),它附带了一个新的运行时V4.0,可能我错了,但我知道.NET 4不会更改CLR运行时,而是会提供添加的DLR开关以支持动态语言。AZ-.NET framework 4.0实际上是一个新的运行时(除了您提到的DLR功能之外)。有关更多信息,请参阅(我在Bing上找到的第一个具有良好信息的链接)。还有一个链接指向一个不错的PDC2008演示文稿。