修改類的命名空間引發的發布問題

2022-05-08 11:03:08 字數 858 閱讀 2727

以前每次發布程式之前我們都會用vs2010的版本比較工具去比較出本次程式修改都修改了那些.cs、.config等檔案,從而最終確定哪些project、config需要被包含在本次發布包中,但這種做法在我們將乙個類從乙個project(assambly)移動到另乙個project(assambly)時遇到了問題,導致發布出的程式部署後出現assambly載入的問題:

具體分析如下:

這次修改我們將乙個類從乙個舊的project(assambly)移到了另乙個新的project(assambly),但是其中有一些原來引用這個類的project(assambly)在這個重構中並沒有被導致任何檔案內容上的修改(但實際上編譯出的assambly中的元資料和il**是不一樣了),所以通過比較修改版本的方法是沒有辦法確定這種問題的。

雖然將乙個類從乙個project(assambly)移動到另乙個project(assambly)會導致這種問題,但也並不一定每次都會造成這個問題。

如果原來引用這個類的project(assambly)中之前沒有引用過新的project(assambly),那麼這個重構就會導致引用舊的project(assambly)的project(assambly)編譯不同過,最終必須通過新增對新的project(assambly)的引用並修改相關cs檔案來解決這個問題,當然在這種情況下我們的比較方案還是可行的。

如果原來引用這個類的project(assambly)中之前就同時引用了新舊的兩個project(assambly),並且使用這個類的.cs檔案中的命名空間也都引用了新舊的兩個project(assambly)中的命名空間,那麼這個重構就不會導致引用舊的project(assambly)的project(assambly)有任何檔案內容上的改變,在這種情況下我們的比較版本的方案就不可行了。

類命名空間 物件的命名空間 查詢順序

類命名空間與物件的命名空間 類的命名空間 建立乙個類就會建立乙個類的命名空間,用來儲存類中定義的所有名字,這些名字稱為類的屬性 類有兩種屬性 靜態屬性和動態屬性 靜態屬性 直接在類中定義的變數 動態屬性 定義在類中的方法 其中類的資料屬性是共享給所有物件的 id egg.role 434159407...

XML命名空間的問題

一直對xml檔案中的命名空間問題不清楚,或許今天問題得到了解決。首先,命名空間是schema中引入的概念,為了解決dtd無法處理的 命名衝突 問題。其次,為乙個元素定義了namespace則它的所有的子元素都會使用相同的namespace。命名空間的唯一標識 url schema規範中的命名空間的值...

類的成員和命名空間

class a country 中國 靜態變數 靜態屬性 儲存在類的命名空間裡的 def init self,name,age 繫結方法 儲存在類的命名空間裡的 self.name name self.age age def func1 self pass def func2 self passcl...