regasm netstandard DLL

时间:2017-12-20 03:43:36

标签: com-interop regasm .net-standard-2.0

我有一个C#项目,我想用作其他.NET程序集的.NET Standard 2.0库和本机代码的COM组件。当我定位完整的.NET Framework时,我可以创建COM对象,但是当我创建一个面向.NET Standard的新项目时,我尝试注册时遇到了这个错误:

regasm /codebase /tlb MyLib.dll
  

RegAsm:错误RA0000:无法加载文件或程序集'netstandard,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = cc7b13ffcd2ddd51'或其依赖项之一。系统找不到指定的文件。

如何构建和注册与.NET Standard和COM兼容的DLL?

1 个答案:

答案 0 :(得分:1)

确保已安装.NET 4.7.1。即便如此,由于Visual Studio不会将NuGet包复制到输出目录,因此期望获得类似的“无法加载文件或程序集”#34;其中一个错误。

如果您可以使用单个项目但只有两个DLL,则可以选择以下方法:在.csproj中,删除TargetFramework行并根据您的代码需要将其替换为多个目标,例如:

<TargetFrameworks>netstandard2.0;net461</TargetFrameworks>

然后使用net461 DLL供COM和netstandard2.0使用,供.NET使用。