【发布时间】:2019-11-17 21:11:58
【问题描述】:
我正在开发一个 .net 核心网络应用程序(针对 net461)。 应用需要引用 COM dll。
我添加了 COM 引用,并且该应用仍然在我的开发机器上构建。 但是,在构建服务器上,它无法构建并出现此错误:
C:\Program Files (x86)\dotnet\sdk\2.0.0\Microsoft.Common.CurrentVersion.targets(2604,5):错误 MSB4062:“Microsoft.Build.Tasks.ResolveComReference”任务无法从程序集 Microsoft.Build.Tasks.Core 加载
经过一番搜索,这似乎是一个非常罕见的错误。 任何人都知道错误是什么和/或如何解决它?
更新:似乎 dotnet CLI 不支持 COM 引用。 Visual Studio 直接在幕后使用 msbuild,但在构建服务器上,我使用的是 dotnet CLI 命令。
解决方法:
- 引用 COM dll 并重建。 Visual Studio 将生成一个互操作 dll。它将被命名为 Interop.MyComDLL.dll 之类的名称。它位于构建输出目录中。
- 将生成的 Interop dll 复制到应用程序的某个位置(我只是 在根应用程序级别使用 /dlls 文件夹)。
- 删除 COM dll 引用。
- 添加对 Interop dll 的直接引用(依赖项 > 添加引用... > 在 Visual Studio 中浏览)
【问题讨论】:
标签: c# asp.net-mvc asp.net-core .net-core