C# class 库的导出在 Visual Studio 2019 年失败
Export of C# class library fails in Visual Studio 2019
我有一个包含多个项目的解决方案。其中之一是 class 库(C# - .Net Framework),此 dll 需要导出为非托管代码才能在 C++ 项目中使用。
在迁移到 VS 2019 之前,我使用 VS2017 执行此操作并且一切正常,但现在使用 2019 版本我有一些我无法解决的不兼容性。
对于 DLL 导出,我们使用 RGiesecke 的一个名为 "Unmanaged Export" 的库,它在 VS2017 中完美运行。
为了解决这个问题,我尝试将.Net Framework 的版本降级到4.6.2 和4.0。我试图降级包的版本,但都不起作用。
自 3.5 版本以来,我安装了所有 .Net Framework 版本。
这是导出函数的代码示例。这在 VS2017 4.6.2 .Net 版本中完美运行!
namespace ExampleExp
{
public class ExportInterfaceEx
{
[DllExport(CallingConvention = CallingConvention.Cdecl)]
public static int Start()
{
return 5;
}
}
}
我在尝试编译 class 库时出现此错误:
The "DllExportAppDomainIsolatedTask" task failed unexpectedly.
System.ArgumentException: Requested value 'Version47' was not found.
我自己也遇到过同样的问题。
我在这方面找到的最佳信息就在这里;
https://github.com/3F/DllExport/issues/29
建议您首先确保拥有最新版本的 UnmanagedExports(NuGet 商店目前为 1.2.7)。您可以尝试按照此线程中的建议安装构建工具,尽管为 VS2015 和 VS2019 安装上述工具对我不起作用。
对我来说,将项目的目标 .NET 框架降低到 .NET 4.5 可行,但不适用于 4.7.2...
您可以使用 DllExport 代替 UnmanagedExports
,因为它已过时。
我有一个包含多个项目的解决方案。其中之一是 class 库(C# - .Net Framework),此 dll 需要导出为非托管代码才能在 C++ 项目中使用。 在迁移到 VS 2019 之前,我使用 VS2017 执行此操作并且一切正常,但现在使用 2019 版本我有一些我无法解决的不兼容性。 对于 DLL 导出,我们使用 RGiesecke 的一个名为 "Unmanaged Export" 的库,它在 VS2017 中完美运行。
为了解决这个问题,我尝试将.Net Framework 的版本降级到4.6.2 和4.0。我试图降级包的版本,但都不起作用。 自 3.5 版本以来,我安装了所有 .Net Framework 版本。
这是导出函数的代码示例。这在 VS2017 4.6.2 .Net 版本中完美运行!
namespace ExampleExp
{
public class ExportInterfaceEx
{
[DllExport(CallingConvention = CallingConvention.Cdecl)]
public static int Start()
{
return 5;
}
}
}
我在尝试编译 class 库时出现此错误:
The "DllExportAppDomainIsolatedTask" task failed unexpectedly. System.ArgumentException: Requested value 'Version47' was not found.
我自己也遇到过同样的问题。
我在这方面找到的最佳信息就在这里; https://github.com/3F/DllExport/issues/29
建议您首先确保拥有最新版本的 UnmanagedExports(NuGet 商店目前为 1.2.7)。您可以尝试按照此线程中的建议安装构建工具,尽管为 VS2015 和 VS2019 安装上述工具对我不起作用。
对我来说,将项目的目标 .NET 框架降低到 .NET 4.5 可行,但不适用于 4.7.2...
您可以使用 DllExport 代替 UnmanagedExports
,因为它已过时。