我正在开发 .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 中浏览)
最佳答案
如果您尝试使用与在构建服务器上相同的命令构建它,它也应该在开发人员机器上失败,例如
dotnet.exe build Solution.sln --configuration Release --no-incremental
VS 使用 msbuild 构建解决方案,这是一种不同的方式。
关于c# - 构建 : error MSB4062 Microsoft. Build.Tasks.ResolveComReference 时出现 .NET Core 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47062203/