2

我正在使用 Visual Studio 2019 编译一个解决方案。这个解决方案有两个项目,我们可以称它们为 Common 和 Program。Program 依赖于 Common,Common 依赖于 NuGet 包LibVLCSharpLibVLCSharp.WPF以及VideoLAN.LibVLC.Windows.

如果我清理然后构建程序,一切都很好:dll 被正确复制到bin/Debugor中bin/Release。但是,如果我对 Program 进行任何更改并在不清理它的情况下对其进行编译,那么与 VLC 相关的 dll 就会消失。

dll消失的原因是什么?在 Visual Studio UI 中,我在编译项目时看不到它正在运行的命令。我该如何调试它?

4

1 回答 1

2

您似乎在引用VideoLAN.LibVLC.Windows您的Common项目而不是在您的Program项目中。这不是我们支持的方案。

我写了这个关于你应该在哪个项目中安装 LibVLC 的解释

简而言之,您应该LibVLC只将包安装到您的应用程序项目中,因为我们插入了一个构建步骤,将文件复制到项目的输出文件夹中。

如果在项目中引用了LibVLC项目Common,我们无法将文件复制到Program项目中,因为MSBuild不知道。然后,您必须告诉 MSBuild 将这些文件从 复制Common/bin/...Project/bin/...,但相信我,您不想弄乱 MSBuild。

编辑:这并不意味着您不能在 Common 项目中使用 LibVLCSharp。您可以在项目中引用 LibVLCSharp 包,因为它仅在运行时Common依赖。VideoLAN.LibVLC.Windows

于 2020-05-19T12:13:24.847 回答