Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

c# - .NET Core error on build: error MSB4062 Microsoft.Build.Tasks.ResolveComReference

I'm working on a .net core web app (targeting net461). The app needs to reference a COM dll.

I added the COM reference and the app still builds on my dev machine. However, on the build server it fails to build with this error:

C:Program Files (x86)dotnetsdk2.0.0Microsoft.Common.CurrentVersion.targets(2604,5): error MSB4062: The "Microsoft.Build.Tasks.ResolveComReference" task could not be loaded from the assembly Microsoft.Build.Tasks.Core

After searching a bit, it seems like it's a pretty uncommon error. Anyone know what the error is and/or how to fix it?


UPDATE: Seems like the dotnet CLI does not support COM references. Visual Studio uses msbuild directly behind the scenes, but on the build server, I was using the dotnet CLI commands.

WORKAROUND:

  1. Reference the COM dll and rebuild. Visual Studio will generate an interop dll. It will be named something like Interop.MyComDLL.dll. It is found in the build output directory.
  2. Copy the generated Interop dll to somewhere in the application (I just used a /dlls folder at the root application level).
  3. Remove the COM dll reference.
  4. Add a direct reference (Dependencies > Add Reference... > Browse in Visual Studio) to the Interop dll
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

It should also fail on developer machine if you try to build it using the same command as on build server, e.g.

dotnet.exe build Solution.sln --configuration Release --no-incremental

VS building solution using msbuild, it's a different way.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...