为什么在修改引用的程序集时重新生成其他程序集



我有一个名为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,我发现它已经改变了

为什么?

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

相关内容

最新更新