执行增量构建时 dll 消失

dlls disappear when performing an incremental build

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

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

dll 消失的原因是什么? 在 visual studio UI 中,当我编译项目时,我没有看到它是 运行 的命令。我该如何调试它?

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

我写了

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

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

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