C# 如何解决在使用.net core 3.0加载互操作dll时找不到文件的问题?

C# 如何解决在使用.net core 3.0加载互操作dll时找不到文件的问题?,c#,.net,dll,com,C#,.net,Dll,Com,我正在尝试将一些代码从.net frame 4.7.1移植到.net core 3.0 问题是,我们有一个C++ COM组件,我们使用清单来引用.Out.NET项目。 我已将项目添加到新解决方案中,并添加了引用。创建了互操作dll,但当我尝试运行代码时,出现异常 {"Could not load file or assembly 'Interop.MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. The sys

我正在尝试将一些代码从.net frame 4.7.1移植到.net core 3.0

问题是,我们有一个C++ COM组件,我们使用清单来引用.Out.NET项目。 我已将项目添加到新解决方案中,并添加了引用。创建了互操作dll,但当我尝试运行代码时,出现异常

{"Could not load file or assembly 'Interop.MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.":"Interop.MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"}

该文件位于项目的输出文件夹中。实际的com程序集不是,但即使在中复制它也不起作用

答案是,在visual studio中添加引用不适用于.net核心应用程序


解决方案是创建一个.net framework应用程序,添加引用,然后将csproj的comreference部分复制到.net核心项目中

嵌入互操作类型!!!我花了很长时间才找到这个

<Reference Include="Microsoft.Office.Interop.Excel, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c">
  <HintPath>Microsoft.Office.Interop.Excel.dll</HintPath>
  <EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>

Microsoft.Office.Interop.Excel.dll
真的

COM是特定于windows的,我怀疑它是否与.Net core兼容,因为.Net core也需要与Linux和Mac配合使用。这不起作用,因为.Net core版本的MSBuild无法生成该项目。错误:MSB4803:MSBuild的.NET核心版本不支持任务“ResolveComReference”。