c# - 执行增量构建时 dll 消失

标签 c# visual-studio dll libvlc libvlcsharp

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

如果我清理然后构建程序,一切都很好:dll 被正确复制到 bin/Debugbin/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/

相关文章:

c# - 在 .NET MVC 中使用 LDAP/网络凭据验证用户

c# - 如何从目录中的文件夹中获取最新的文件名

c# - 如何解析 C# 类的方法体内的所有公共(public)方法名称和方法调用?

c++ - 从 DLL 导出常量

c++ - 为什么 dependency walker 显示缺少的 dll?

c# - PostSharp 将调用堆栈显示为 "Aspect Code"并降低调用堆栈的可用性

c++ - 如何在使用 JNI 的 C++/Java 项目中使用 CRT 中的工具检测内存泄漏?

visual-studio - Visual Studio 打不开

git - 在 VSCode OSX 中找不到 git 路径

multithreading - 使用声明为 __declspec(thread) 的变量崩溃