繁体   English   中英

如果我向C#类添加一个公共方法,我是否需要使用该类型重新编译其他程序集?

[英]If I add a public method to a C# class, do I need to recompile other assemblies using that type?

标题中的问题。

我想避免重新编译,因为我正在修改的源代码是第三方,我想尽可能使用原始二进制文件,并只替换包含我修改过的类的程序集。 但我不确定这是否安全。 以C ++为例,这绝对是一个坏主意。

没有。

引用库的程序集使用(某种形式的)名称引用方法和类型,因此只要不更改公共类型和方法的名称(由其他程序集使用),就不需要重新编译任何名称和方法。的程序集 - 它们将与库的更新版本一起使用。

在大多数情况下,Tomas的答案是正确的,但有些情况并非如此:

  1. 当使用强命名(签名)时,单个字符的更改会导致新的签名,从而导致新的强名称。
  2. 在程序集的项目引用中设置属性Specific Version为true并在AssemblyInfo.cs中手动或自动更改版本号

不会。所有其他程序集将自动使用新更新的库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM