DevExpress版本轉換注意

手上有一個其它人用DevExpress 12.1.4做的界面(VS2010),由於手上有11.1.6的重編譯版本,不想重新安裝12.1.4了,而且重編譯版本不需要安裝,開發和部署上都很方便,所以想把12.1.4做的界面轉到11.1.6上。以這個轉換(12.1.4到11.1.6)爲例說明一下,注意這個轉換隻適用於比較近的版本,如果版本相差過大,DLL文件中的類及變量名變動太大,是不行的。


1:首先,打開項目文件,將原來的DevExpress 12.1.4的引用DLL全部移除,添加對應的11.1.6的版本。


2:嘗試編譯,會報licenses.licx錯誤,將這個文件刪除即可。


3:再嘗試編譯,會報各個窗體對應的.resx文件錯誤,主要是記錄了控件的版本信息。例如:

 <data name="ribbonImageCollection.ImageStream" type="DevExpress.Utils.ImageCollectionStreamer, DevExpress.Utils.v12.1" mimetype="application/x-microsoft.net.object.bytearray.base64">

這種只記錄了DLL文件的版本,要將DevExpress.Utils.v12.1改成DevExpress.Utils.v11.1


4:resx中還有一種情況:

<assembly alias="DevExpress.Utils.v12.1" name="DevExpress.Utils.v12.1, Version=12.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />

這種不僅記錄了DLL的版本(DevExpress.Utils.v12.1),還記錄了庫的版本(12.1.4.0)以及公鑰(PublicKeyToken)

這種情況下,三個都需要進行相應的改動,

將DLL版本改爲DevExpress.Utils.v11.1,將庫版本改爲11.1.6.0,將PublicKeyToken改爲11.1.6對應的值:df0645c64b6ed9e5


注:公鑰(PublicKeyToken)的值是在編譯過程中生成的,並不是一定的,所以需要查看一下DLL文件的公鑰,可以在VS命令行工具下執行:

sn -T xxx\xxx\xx.dll

命令來查看DLL文件的公鑰值,再修改RESX文件





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章