【问题标题】:.NET Framework version and COM objects.NET Framework 版本和 COM 对象
【发布时间】:2010-12-13 00:55:11
【问题描述】:

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

有谁知道 .Net COM 组件是否可以这样做,即指定它们可以在 v4.X 上运行而无需重新构建和重新定位它们的位置?

【问题讨论】:

    标签: c# .net com


    【解决方案1】:

    什么 v4.x 运行时?最新的框架版本是 3.5,不包含对运行时的更改。它与 2.0 的运行时相同,但有一些额外的库。

    【讨论】:

    • 您好,感谢您的回复,我们使用的是 .Net Framework 4 Beta 2(客户端配置文件),它附带 V4.0 的新运行时
    • 也许我错了,但我知道 .NET 4 不会更改 CLR 运行时,而是会提供 DLR 女巫以支持动态语言。
    • AZ - .Net framework 4.0 实际上是一个新的运行时(除了你提到的 DLR 功能)。有关更多信息,请参阅infosysblogs.com/microsoft/2008/11/…(我在 Bing 上找到的第一个链接,其中包含很好的信息)。那里还有一个不错的 PDC2008 演示文稿的链接。
    【解决方案2】:

    我找到了答案,你需要在 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 运行时构建的托管组件。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多