gpt4 book ai didi

c# - 在 .NET Core 2.0 中使用 COM 对象

转载 作者:行者123 更新时间:2023-11-30 15:16:23 25 4
gpt4 key购买 nike

因此,客户端有一个 2007 年用 C 语言编写的 COM 对象,用于验证加密的 session cookie。这目前适用于使用以下内容的旧版本 .NET。

var validate = Activator.CreateInstance(Type.GetTypeFromProgID("Company.Validate"));

新的实现将完全使用 C#。我已将验证逻辑提取到 .NETCore 类库中,我们又在我们的 ASP.Net Core 项目中引用它。

  1. 我已经尝试过 32 位和 64 位版本,以及 IIS 设置。

  2. 我反编译了 COM 对象并引用了它,它在本地工作,但在开发服务器上不起作用,我收到以下错误:

    Retrieving the COM class factory for component with CLSID {EDC43BC6-5ECD-4501-AEB3-64A17180A13D} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

  3. COM 已在本地和开发服务器上注册。

  4. Activator.CreateInstance 在这两种环境中均不起作用。

  5. 注册的COM ID和ProgId在本地和开发服务器上是一样的。


问:我错过了什么,或者这行不通吗?有没有人在类似的挑战中取得成功?我忽略了什么吗?

最佳答案

您不能将 COM 与 .NET Core 一起使用。 COM 仅适用于 Windows,而 .NET Core 中的所有内容都必须是跨平台的。但是,您可以在完整框架上运行您的 ASP.NET Core 应用程序,然后您可以使用 COM 库。换句话说,运行完整的框架并不妨碍您继续使用 ASP.NET Core。由于完整的框架/COM 依赖性,您将只能部署到 Windows。从技术上讲,如果您计划部署到 Mac 或 Linux 之类的系统,您需要使用 .NET Core。否则,就坚持你所知道的。

关于c# - 在 .NET Core 2.0 中使用 COM 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49695476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com