【问题标题】: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 在构建后也发生了更改。为什么会这样?

这是我采取的步骤:

  1. Company.Base.dll的类中添加方法
  2. 构建Company.Base.dll
  3. 构建ProjectOne.dll
  4. 比较 ProjectOne 的新 dll 和它的旧 dll,我发现它已经改变了。

为什么?

【问题讨论】:

    标签: c# visual-studio build dependency-management solution


    【解决方案1】:

    这是因为当您构建一个项目时,它是另一个项目的依赖项/引用,默认情况下,构建的文件(例如 ref.dll)会复制到主 bin 项目文件夹,而不是构建在唯一的项目文件中。如果您转到主 bin 文件夹,您将看到这两个文件。 因此,如果您对依赖项/引用项目进行修改,则需要使用新的二进制内容更新该项目才能正常工作。 您可以在依赖项/参考 -> [参考项目名称] -> 属性 -> 本地副本上禁用本地副本 但是,除非您有一些程序集解析器或可以解决它的东西,否则您只会得到一个无法正常工作的项目,因为未更新的引用。

    【讨论】:

      猜你喜欢
      • 2013-08-04
      • 1970-01-01
      • 1970-01-01
      • 2020-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多