c# - C# WPF - VLC - LibVLCSharp.Shared.VLCException:'未能加载所需的本机库
问题描述
我已经在code.videolan网站上测试了 WPF 最小 VLC 示例,它工作正常。
然后我按照此处的 Microsoft 文档为 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\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;...项目\VLCTest\VLC.Package\bin\x64\Debug\AppX\VLCTest\libvlc.dll,"}
因此,我手动将文件夹从 WPF 项目(不再是启动项目)复制到新的 .package 启动项目 AppX ... 文件夹中,并且它起作用了。
什么是干净的解决方案?
解决方案
据我所知,使用 MSIX 进行打包从未经过测试。
您的 libvlc.dll、libvlccore.dll 文件和插件文件夹是否被正确复制到应用程序的 DLL 旁边?
如果您不使用 UWP,请不要引用 LVS.UWP。
推荐阅读
- ssh - Vagrant 的权限被拒绝
- gradle - 将所有依赖项从一个 Gradle 配置复制到另一个
- powershell - 在 Powershell 中过滤属性列表的第一个值
- node.js - EJS linting 错误 - 删除不必要的 <% 和 %>
- ios - 应用程序图标仅在 iPad Pro(12.9 英寸)第 2 代上不显示
- php - 我们可以使用 php 将谷歌文档中的数据获取到 mysql 数据库吗
- javascript - 如何从输入变量将元素添加到 JavaScript 中的数组?
- ssl - 更改 IIS Express SSL 证书
- c# - C#将通用类obj作为参数传递给接口
- reactjs - 显示隐藏多个元素与反应