如果类更改,是否我的项目中的所有程序集都需要重新编译和重新部署

本文关键字:新编译 编译 部署 新部署 程序集 是否 我的 项目 如果 | 更新日期: 2023-09-27 17:52:53

如果我有一个类库,其中包含一定数量的公共类(本例中为5个),并且我有3个项目依赖于该库(本例中为5个),并且我决定更改其中一个类,但3个项目中只有1个依赖于该类。

我需要编译/链接/部署所有3个项目吗?

基本上。net依赖于类的名字还是它有某种类型的地址依赖?(我有c++背景,所以我知道在c++中我必须重新部署所有3个项目)。

如果类更改,是否我的项目中的所有程序集都需要重新编译和重新部署

如果类继承自一个接口,而您不更改接口(而只更改类实现),那么如果依赖于接口与类通信,则不必更改依赖程序集。

如果您更改了依赖程序集所依赖的类的API(如方法签名或名称),则必须修复依赖程序集以使用新的API。这包括对类本身名称的更改。

所以这里的关键是提供一个稳定的API。如果您更改了API,那么您必须更改依赖于API的代码。如果一个程序集不是依赖的(也就是说,它不依赖于你正在改变的任何API依赖项),那么你就不必重新部署它。

如果您重新编译类库项目,创建一个新的DLL,您不必重新编译不依赖于DLL更改的项目,只要:

  • 每个项目依赖的公共接口不会以破坏性的方式改变。
  • 项目仍然与DLL的新版本号兼容。

如果依赖的项目不需要DLL的特定版本号或版本范围,则不需要考虑版本。