为啥在修改引用的程序集时会重建其他程序集?
Posted
技术标签:
【中文标题】为啥在修改引用的程序集时会重建其他程序集?【英文标题】:Why are other assemblies rebuilt when a referenced assembly is modified?为什么在修改引用的程序集时会重建其他程序集? 【发布时间】:2021-09-04 06:01:09 【问题描述】:我有一个名为 Company.Base.dll
的基础程序集。
它已在其他一些项目中使用。比如我在ProjectOne.dll
中使用过。
但是,当我在 Company.Base.dll
中更改一个类时,比如向其中一个类添加一个方法,我看到 ProjectOne.dll
在构建后也发生了更改。为什么会这样?
这是我采取的步骤:
-
在
Company.Base.dll
的类中添加方法
构建Company.Base.dll
构建ProjectOne.dll
比较 ProjectOne
的新 dll 和它的旧 dll,我发现它已经改变了。
为什么?
【问题讨论】:
【参考方案1】:这是因为当您构建一个项目时,它是另一个项目的依赖项/引用,默认情况下,构建的文件(例如 ref.dll)会复制到主 bin 项目文件夹,而不是构建在唯一的项目文件中。如果您转到主 bin 文件夹,您将看到这两个文件。 因此,如果您对依赖项/引用项目进行修改,则需要使用新的二进制内容更新该项目才能正常工作。 您可以在依赖项/参考 -> [参考项目名称] -> 属性 -> 本地副本上禁用本地副本 但是,除非您有一些程序集解析器或可以解决它的东西,否则您只会得到一个无法正常工作的项目,因为未更新的引用。
【讨论】:
以上是关于为啥在修改引用的程序集时会重建其他程序集?的主要内容,如果未能解决你的问题,请参考以下文章