我有一个dotnet核心库,一个框架4.7.2库和一个vb6应用程序。
我想编写一个公共库供所有人访问,因此选择.netstandard2.0
我尝试了.netstandard2.0库和vb6之间的4.7.2框架包装器库。
但是我遇到了assembly binding problems
看着the docs,我看到
在.NET Core中,与.NET Framework相比,显着简化了将.NET对象暴露给COM的过程。
但是没有提及.netstandard2.0
即使我的项目使用的是.netstandard2.0,我仍然决定尝试遵循文档
我掌握了有关生成COM主机的说明,在这种情况下,应构建输出文件ProjectName.dll,ProjectName.deps.json,ProjectName.runtimeconfig.json和ProjectName.comhost.dll。
但是不会创建ProjectName.comhost.dll和ProjectName.runtimeconfig.json。
我在dotnet standard issue中看到Microsoft计划在“ Preview 4”中提供工具支持
我正在运行VS 16.4.5
[更新]
我决定尝试制作一个.net核心包装库并将其启用为com。
我能够通过nuget包将.netstandard添加到包装器库(我使用azure devops构建了.netstandard库)
当我构建包装库时,.bin,.deps.json,.pdb,.runtimeconfig.dev.json和.runtimeconfig.json文件在bin \ Debug \ netcoreapp3.1文件夹中创建。
但是.netstandard库文件中没有一个出现在bin \ debug文件夹中。
我将.netstandard库和.netcore包装器库复制到同一文件夹并运行
regsvr32 MyCoreComWrapper.comhost.dll
但是没有创建.tlb文件,我需要能够从VB6使用它。>
我注意到文档中的以下内容
与.NET Framework中不同,.NET Core中不支持从.NET Core程序集生成COM类型库(TLB)。的指导是手动编写IDL文件或C / C ++标头COM接口的本机声明。
我发现了一些信息on github,但是希望逐步制作.tlb的指南
我曾考虑过改用后期绑定,但不确定如何在com库中使用它。
我有一个dotnet核心库,一个4.7.2框架库和一个vb6应用程序。我想编写一个公共库供所有人访问,因此选择.netstandard2.0我尝试了4.7.2框架...
关于.NET标准,我可能是错的,但是我认为