我有一些 C# .NET Framework 项目,我将它们构建为 DLL,以用作 Sony VEGAS 中的插件。所有这些项目都足够相关,因此我可以将一些共享功能隔离到一个独特的“核心”DLL,我将其包含在每个插件的 DLL 中,并在插件 DLL 项目中使用参考。正如您所料,如果我不将“Core”DLL 与插件 DLL 一起包含,则所有插件都无法工作,因为它们找不到“Core”DLL。这对我来说完全有道理。
但是,对我来说没有意义的是,“核心”DLL 和插件 DLL 也引用了我构建的与这些插件无关的 C# .NET Framework DLL,但是如果我不包括这些杂项。 DLL 与插件 DLL 和“核心”DLL 一起,那么插件仍然工作得很好吗?它不像这些杂项。 DLL 被引用但未使用,它们在我的插件 DLL 和“核心”DLL 中广泛使用,因此对我来说,每个插件 DLL 必须包含在“核心”DLL 和杂项中才有意义。 。插件 DLL 和“核心”DLL 都广泛使用 DLL,但事实并非如此。
为什么规则看起来不一致?我知道 C# DLL 与 C++ DLL 不同,因为 C# 在虚拟机中运行,并保持对过去编译设计概念(例如访问修饰符和封装)的理解,这让我能想到的唯一解释是,对于某些原因杂项。当构建这些 DLL 时,DLL 以某种方式直接嵌入到我的插件 DLL 和“核心”DLL 中,但我肯定没有尝试在我的 IDE (Visual Studio 2022) 中这样做。
有什么想法吗?非常感谢您的阅读!
我希望我能为这个问题给出一个更令人满意、更彻底的结论,但问题就这样不再发生了。我不知道怎么做,也不知道为什么,但是当我刚才去做健全性检查时,就好像这个问题从一开始就不是问题。现在,我的任何一个插件都需要它们所依赖和引用的所有 DLL 在该插件的目录中作为同级出现。以前我一直在得到结果,这就是促使我发布这个问题的原因,但现在我想一切都很好。