我知道标题可能有点模糊,但我没有更好的方法来表达它。
我有一个名为 TestProject 的项目,该项目使用名为 BusinessCode 的dll。
BusinessCode在TestProject中引用,因此被复制到TestProject的Debug文件夹(Copy Local = True)。这就是我所说的第一层参考。
我的第二层是BusinessCode中引用的dll。这些dll是 LanguageProvider 和 System.Data.SQLite 。 LanguageProvider中只包含资源字典,因此没有硬编码写入dll,只要将dll复制到BusinessCode dll的Debug文件夹中,我甚至可以将其保留在引用之外。但这里有我不完全理解的东西。无论我是否在BusinessCode中引用LanguageProvider,LanguageProvider永远不会被复制到第一层(TestProject)Debug文件夹。
另一方面,必须在BusinessCode中引用System.Data.SQLite。但是,如果我在BusinessCode中使用代码,System.Data.SQLite也将被复制到第一层(TestProject)Debug文件夹。如果我不使用代码,它就不会。
我从中学到的是,如果不需要,dll就不会被复制到更高层。我想知道的是,这是如何控制的? VS2015如何知道何时或何时不这样做?我问的原因是我想在BusinessCode中引用LanguageProvider,但它也被复制到第一层(TestProject)Debug文件夹。