我正在使用 Visual Studio 2019 编译一个解决方案。该解决方案有两个项目,我们可以将它们称为 Common 和 Program。程序依赖于 Common,而 Common 依赖于 NuGet 包 LibVLCSharp
、LibVLCSharp.WPF
和 VideoLAN.LibVLC.Windows
。
如果我清理然后构建程序,一切都很好:dll 被正确复制到 bin/Debug
或 bin/Release
中。但是,如果我对 Program 进行任何更改并在不清理的情况下编译它,则与 VLC 相关的 dll 就会消失。
DLL 消失的原因是什么? 在 Visual Studio UI 中,我在编译项目时看不到它正在运行的命令。我该如何调试它?
最佳答案
您似乎是在 Common
项目而不是 Program
项目中引用 VideoLAN.LibVLC.Windows
。我们不支持这种情况。
我写了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
。
关于c# - 执行增量构建时 dll 消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61887262/