我们有一个用.NET编写的C#类库,我们试图从.NET Frameworkv2.0升级到.NET 6。使用.NET 2.0,通过导入库的.TLB的C++代码实例化/使用库。
为了使用COM使用.NET 6库,您现在必须自己向C#接口/类以及.csproj添加属性,以便在编译时创建一个名为.comhost.dll的额外DLL,然后使用regsvr32作为https://learn.microsoft.com/en-us/dotnet/core/native-interop/expose-components-to-com注册。不再支持使用类型库,但是我尝试使用这里的"dscom“实用程序https://github.com/dspace-group/dscom生成一个TLB。不幸的是,它一直失败,错误地说System.Windows.Forms是找不到的,并且花了几天努力让它工作,我放弃了。
微软的教程并没有提出最好的方法来实例化新创建的COM对象,所以我想知道这是回到调用CoCreateInstance或LoadLibrary的旧方法,还是有更好的方法?如果基于TLB的方法仍然有效,那就太好了。
发布于 2022-10-06 10:13:12
只是这方面的最新消息。我成功地使用dscom实用工具生成了一个类型库。我必须提供一个名为"--asmpath“的附加参数,以指向.NET运行时程序集的位置(在本例中,是C:\Program,我的程序集依赖于此),然后它就工作了。
https://stackoverflow.com/questions/73803662
复制相似问题