c# - 构建 : error MSB4062 Microsoft. Build.Tasks.ResolveComReference 时出现 .NET Core 错误

标签 c# asp.net-mvc asp.net-core .net-core

我正在开发 .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 命令。

解决方法:

  1. 引用 COM dll 并重建。 Visual Studio 将生成互操作 dll。它将被命名为类似 Interop.MyComDLL.dll 的名称。它位于构建输出目录中。
  2. 将生成的 Interop dll 复制到应用程序中的某处(我只是 在根应用程序级别使用了/dlls 文件夹)。
  3. 删除 COM dll 引用。
  4. 向 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/

相关文章:

c# - 我应该使用 '==' 进行 .NET 本地化字符串比较吗?

c# - TcpListener/TcpClient 在某些情况下停止处理数据

c# - 如何从自定义比较中获取有关失败的更详细信息?

asp.net-mvc - 结构图2.6.1 Bootstrap

c# - 使用用户名和密码 .netcore 2 的 Swagger Auth

c# - 在 ASP.NET Core 中嵌入 View 本地化

c# - WCF - 错误 : Cannot obtain Metadata

asp.net-mvc - 选择哪个 Controller 应包含操作

c# - 向新注册用户发送验证电子邮件以激活他们的帐户

.net - WebApi/.net-core : Can't access to webapi