C# WPF - VLC - LibVLCSharp.Shared.VLCException: '无法加载所需的本机库

C# WPF - VLC - LibVLCSharp.Shared.VLCException: 'Failed to load required native libraries

我已经在 code.videolan 网站上测试了 WPF 最小 VLC 示例,它工作正常。

然后我按照 Microsoft 文档 here 为 Windows 商店准备(并打包)应用程序,基本上它不再适用于加载库失败消息。

将 .package 项目设置为启动项目会产生问题。这些是我拥有的包,尽管 UWP 刚刚添加并且没有在任何地方被引用。

在 VLC 示例中,它直接在 Core.Initialize();

上失败
void VideoView_Loaded(object sender, RoutedEventArgs e)
{
     Core.Initialize();

     _libVLC = new LibVLC();
     _mediaPlayer = new MediaPlayer(_libVLC);

     VideoView.Media

     _mediaPlayer.Play(new Media(_libVLC, new Uri("http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4")));
}

如果我输入:

var url = typeof(LibVLC).Assembly.Location;

在 Core.ini 行之前检查它的查找位置,我得到: "C:\Users\franc\Documents\Visual Studio 2019\Projects\VLCTest\VLC.Package\bin\x64\Debug\AppX\VLCTest\LibVLCSharp.dll"

我觉得哪个不错..有什么建议吗?



编辑 1

未在 AppX 文件夹下创建 libvlc 文件夹:

{“无法加载所需的本机库。\r\nHave 您从 nuget 为您的目标平台安装了最新的 LibVLC 包?\r\nSearch 路径包括

...Projects\VLCTest\VLC.Package\bin\x64\Debug\AppX\VLCTest\libvlc\win-x64\libvlc.dll, ...Projects\VLCTest\VLC.Package\bin\x64\Debug\AppX\VLCTest\libvlc\win-x64\libvlccore.dll; ...Projects\VLCTest\VLC.Package\bin\x64\Debug\AppX\VLCTest\libvlc\win-x64\libvlc.dll, ...Projects\VLCTest\VLC.Package\bin\x64\Debug\AppX\VLCTest\libvlc\win-x64\libvlccore.dll; ...Projects\VLCTest\VLC.Package\bin\x64\Debug\AppX\VLCTest\libvlc.dll,"}

所以我手动将文件夹从 WPF 项目(不再是启动项目)复制到新的 .package 启动项目 AppX ... 文件夹并且它起作用了。

什么是干净的解决方案?

据我所知,使用 MSIX 打包从未经过测试。

您的 libvlc.dll、libvlccore.dll 文件和插件文件夹是否已正确复制到应用的 DLL 旁边?

如果您不使用 UWP,请不要引用 LVS.UWP。