簡體   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