问题描述
我已经在 code.videolan 网站上测试了 WPF 最小 VLC 示例,并且运行良好。
然后我按照 Microsoft 文档 here 为 Windows 商店准备(并打包)该应用程序,基本上它不再适用于无法加载 libs 消息。
将 .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
{"无法加载所需的本机库。\r\n您是否为目标平台安装了来自 nuget 的最新 LibVLC 包?\r\n搜索路径包括
...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。