我正在使用Visual Studio 2019编译解决方案。该解决方案有两个项目,我们可以将它们称为Common和Program。程序取决于Common,而Common取决于NuGet程序包LibVLCSharp
,LibVLCSharp.WPF
和VideoLAN.LibVLC.Windows
。
[如果我先清理然后再构建程序,一切都很好:dll被正确复制到bin/Debug
或bin/Release
中。但是,如果我对程序进行了任何更改并在不清理的情况下将其编译,相对于VLC的dll就会消失。
dll消失的原因可能是什么?在Visual Studio UI中,编译项目时看不到它正在运行的命令。如何调试?
似乎您在VideoLAN.LibVLC.Windows
项目而不是Common
项目中引用了Program
。这不是我们支持的方案。
我写了this explanation about which project you should install LibVLC in。
总之,您应该仅将LibVLC
软件包安装到您的应用程序项目中,因为我们插入了将文件复制到项目的输出文件夹的构建步骤。
如果您在Common
项目中引用LibVLC项目,则无法将文件复制到Program
项目,因为MSBuild不知道该文件。然后,您将不得不告诉MSBuild将这些文件从Common/bin/...
复制到Project/bin/...
,但请相信我,您不想惹上MSBuild。
编辑:这并不意味着您不能在Common项目中使用LibVLCSharp。您可以在Common
项目中引用LibVLCSharp软件包,因为它仅在运行时依赖VideoLAN.LibVLC.Windows
。