如果構建版本和修訂版本號發生更改,CLR如何處理程序集綁定和從GAC加載的問題。大會有四個部分[專業]。[小]。[建築]。[修訂]。我知道如果Major和Minor發生更改,您需要發佈者策略才能從GAC中找到較新版本的程序集。如果生成版本或修訂版本號更改會怎樣?在我的下面的情況下,它不適用於構建和修訂更新。定位GAC程序集,如果只有構建版本或修訂版本號發生更改
在我的應用程序中,我的程序集信息爲[1.0。*],所以TFS在每個版本上以增量方式構建[[1.0.5414.23455]]數字的程序集。 TFS每天都會生成項目並生成具有增量構建和修訂版本號的組件。這是預期的行爲,因爲我在AssemblyInfo文件中指出了通配符[1.0。*]。
現在,我有客戶端應用程序是針對我的應用程序版本[1.0.5414.23455]構建的。我正在使用安裝程序將我的應用程序部署到GAC。現在,如果GAC具有應用程序集版本[1.0.5414.23455],但如果我在GAC中安裝了更新版本(技術上沒有任何更改,只是新的每晚構建版本)[1.0.5414.23456],則客戶端應用程序工作正常,客戶端應用程序將不會加載此新版本。
我指的是一些Microsoft博客/文檔,發現只要主要和次要數字相同,客戶端應用程序應該能夠從GAC加載程序集。從GAC中查找組件時,構建和修訂號碼不是強制性檢查。
構建版本號和版本號變更對從GAC定位彙編沒有任何影響,是否正確?
在此先感謝。
你是如何強大的命名你的程序集? – user1620220 2014-12-02 16:56:54
使用強名稱密鑰文件和通過Visual Studio屬性分配的標準方式。 – 2014-12-02 17:03:14
所有4個數字都是相關的並且被檢查。因此,只需更改構建版本或修訂版就足以迫使您使用bindingRedirect或發佈者策略。您絕對不想在GAC中存儲具有自動生成版本號的程序集,這樣會造成太多污染和頭痛。只能在用戶的機器上使用GAC。看看「語義版本控制」。 – 2014-12-02 17:17:33