非托管导出错误"RGiesecke.DllExport.MSBuild.DllExportAppDomainIsolatedTask"



我在编译 DLL 项目的 Visual Studio 2017 时遇到问题:

我在包管理器控制台上做了"安装包非托管导出"...

错误:

无法从程序集 C:\Users\Tom\Desktop\CSharpProjects\MSBuildDLL\MSBuildDLL\MSBuildDLL\MSBuildDLL\packages\UnmanagedExports.1.2.7\tools\RGiesecke.DllExport.MSBuild.dll加载"RGiesecke.DllExport.MSBuild加载。无法加载文件或程序集"RGiesecke.DllExport,版本=1.6.0.1449,区域性=中性,公钥令牌=479f08790debacee"或其依赖项之一。系统找不到指定的文件。确认声明正确,程序集及其所有依赖项可用,并且任务包含实现 Microsoft.Build.Framework.ITask 的公共类。

我在Visual Studio 2013上编译了完全相同的代码,它工作得很好,但不幸的是它在VS 2017上不起作用。我到处寻找解决这个问题的方法,但没有找到解决问题的任何方法。

C# 代码:

namespace DLLTest
{
public class Test
{
[DllExport(CallingConvention = CallingConvention.Cdecl)]
static public int Add(int a, int b)
{
return a + b;
}
}
}

感谢@RobertHarvey在上面的评论中的猜测。

在设置一个全新的工作站并安装 Visual Studio 2019 后,我遇到了同样的问题。我通过以下方式解决了问题:

  1. 安装 Microsoft 生成工具 2015
  2. 安装 .NET 3.5

最新更新