我正在使用.NET Core编写一个应用程序,该程序依赖于使用
我的项目结构如下:
当我运行应用程序时,出现了DLL未找到的异常。
我尝试使用MSBuild目标解决方案here,但这只会在编译时将一个dll复制到主输出文件夹中。然而,我希望输出包含所有三个本地库以及与上述运行时文件夹相同结构的输出文件夹,并留下兼容本地库的选择给.NET Core运行时宿主。
因此,如果用户在Windows x86上运行应用程序,则会使用win-x86,依此类推。
我注意到当我从NuGet引用像SkiaSharp这样的本地包装器时,它实际上会很好地集成到我的应用程序中,并且会包含所有资产以在运行时适用于多个环境。我该怎么做?
编辑:
最终,我创建了一个NuGet包用于本地库绑定,并在其他项目中引用了该NuGet。
[DllImport]
的本机代码。我拥有win-x64、win-x86和linux-x64的本机编译库文件。我的项目结构如下:
MyApp
|--Main.cs
|--runtimes
|--win-x86
|--native
|--somelibrary.dll
|--win-x64
|--native
|--somelibrary.dll
|--linux-x64
|--native
|--libsomelibrary.so
当我运行应用程序时,出现了DLL未找到的异常。
我尝试使用MSBuild目标解决方案here,但这只会在编译时将一个dll复制到主输出文件夹中。然而,我希望输出包含所有三个本地库以及与上述运行时文件夹相同结构的输出文件夹,并留下兼容本地库的选择给.NET Core运行时宿主。
因此,如果用户在Windows x86上运行应用程序,则会使用win-x86,依此类推。
我注意到当我从NuGet引用像SkiaSharp这样的本地包装器时,它实际上会很好地集成到我的应用程序中,并且会包含所有资产以在运行时适用于多个环境。我该怎么做?
编辑:
最终,我创建了一个NuGet包用于本地库绑定,并在其他项目中引用了该NuGet。