DevExpress 安裝、升級

來源:互聯網
上載者:User

本文以DevExpress7.x為例,其他版本雷同。相關下載參考DevExpress網站:http://www.devexpress.com/

一)安裝DXperience控制項

1) 如安裝有DXperience卸載老的DXperience控制項
關閉VS2005/VS2008 IDE,通過控制台的添加/刪除程式功能進行卸載老版本的DXperience控制項

2) 下載需要的檔案
對應版本的DXperience試用版,編譯指令碼和本地化包都需要到DevExpress官方網站進行下載
下面給出下載連結,直接點擊下載即可:
DXperience試用版:點擊進入下載頁面
編譯指令碼:點擊進入下載頁面

2) 安裝試用版
安裝試用版是必須的,因為它包括源碼包中所沒有的示範代碼、協助文檔和各種工具。
雙擊DXperience試用版安裝包進行安裝。
這裡要注意:下載的試用版的版本號碼應該與源碼版本對應

3) 解壓源碼檔案
將源碼壓縮包的所有檔案解壓到試用版的安裝目錄的Sources子目錄下
預設的安裝目錄為:C:Program FilesDeveloper Express .NET v7.x
所以源碼包應解壓到C:Program FilesDeveloper Express .NET v7.xSources目錄
(x應替換相應的次版本號碼,以下不再重複說明)
解壓完成後應看到Sources目錄下多了十幾個源碼子目錄

4) 解壓編譯指令碼
將下載的編譯指令碼壓縮包解壓,然後進入對應版本的子目錄,
將所有檔案(不包括子目錄PatchInternalVisibleTo)複製到DXperience安裝目錄的Sources子目錄下

5) 使用編譯指令碼進行編譯
先執行clear.bat刪除全域緩衝中試用版的程式集DLL,再執行buildall.cmd重建正式版的程式集DLL
編譯時間可能會顯示一些黃色的警告(warning),不用擔心,不會出現錯誤(error)的

註:DXperience 7.3可能要求安裝
a) .NET Compact Frame 2.0 SP2 (點擊進入下載頁面)
否則對下面二個項目的編譯將報錯:
DevExpress.Data.Compact.csproj
DevExpress.Xpo.Compact.csproj
b) .NET Framework 3.5 (點擊下載)
否則對下面一個項目的編譯將報錯:
DevExpress.Xpo.Linq.csproj

對於DXperience 7.3.5源碼中的ASPxScheduler的目錄路徑和編譯指令碼都存在問題,點擊下載修正過的源碼和編譯指令碼

6) 重建工具箱選項卡
點擊 開始菜單 -> 所有程式 -> Developer Express .NET v7.x -> Tools -> ToolboxCreator
以刪除試用版的VS2005/VS2008工具箱選項卡,並重建正式版的VS2005/VS2008工具箱選項卡

7) 確認升級成功
到此控制項已經升級完成,讓我們確認一下
開啟VS2005,建立一個Windows應用程式,然後按Ctrl+Alt+X顯示工具箱,發現有四個新選項卡:
DX: WinScheduler.v7.x
DX: WinLib.v7.x,
DX: Win.v7.x
DX: General.v7.x

展開Developer Express: Win.v7.x選項卡,將GridControl拖到Form1上,然後對GridControl點右鍵,
在彈出的捷徑功能表中,選擇“About”,這時可以看到XtraGrid的版本號碼已經更新了,
Serial Number顯示為--TRIAL VERSION--,雖然顯示為試用版但其實已經是正式版了
真正的試用版只要把GridControl拖到Form上就會自動彈出關於對話方塊的


二)升級原有的應用程式

1) 關閉VS2005/VS2008,備份要升級的應用程式
比如說用WinRAR/7-Zip打個備份包

2) 通過DXperience提供的ProjectConverter進行升級
執行 開始 -> 所有程式 -> Developer Express .NET v7.x -> Tools -> ProjectConverter
在彈出的對話方塊中選擇VS專案檔所在的路徑並去掉建立備份檔案的勾然後按Upgrade就行了
ProjectConverter會將項目中所有對老版本DXperience程式集的引用轉換為新版本

3) 開啟VS2005/VS2008,重新編譯項目
a. 從DevExpress Windows Controls 3.x (VS2005)升級7.x
可能需要更改一些代碼,有三個地方需要改:
GridView.ExportToExcel -> GridView.ExportToXls
GridView.OptionsView.ShowFilterPanel = false -> GridView.OptionsView.ShowFilterPanelMode = ShowFilterPanelMode.Never
GridView.OptionsView.ShowFilterPanel = true -> GridView.OptionsView.ShowFilterPanelMode = ShowFilterPanelMode.ShowAlways
GridView.OptionsBehavior.ShowEditorOnMouseUp = true -> GridView.OptionsBehavior.EditorShowMode = EditorShowMode.MouseUp
可以按Ctrl+H啟用尋找和替換對話方塊,對當前項目所有cs檔案進行替換
直到項目可以順利通過編譯

代碼沒問題了,但是介面還需要改動
應用程式運行後發現介面變得不像樣子了
控制項和工具列的背景色不對了,按鈕上的圖片變成了不透明的了
在方案總管中開啟Program.cs,在Main()函數的Application.Run(new Forms.FormMain());這行代碼前輸入下面的代碼



設定DXperience控制項的預設樣式#region 設定DXperience控制項的預設樣式
UserLookAndFeel defaultLookAndFeel = UserLookAndFeel.Default;
defaultLookAndFeel.UseWindowsXPTheme = false;
defaultLookAndFeel.Style = LookAndFeelStyle.Office2003;
#endregion

這段代碼的功能是統一設定DXperience控制項的預設樣式

在主畫面類中加入下面三個靜態方法,然後
在包括NavBarControl控制項的畫面FormLoad事件中調用NavBarItemTransparent()方法
在包括BarManager控制項的畫面FormLoad事件中調用BarItemTransparent()方法 



       位元影像透明#region 位元影像透明
        public static void BitmpTransparent(Bitmap bitmap)
        ...{
            if (bitmap == null)
                return;

            bitmap.MakeTransparent(Color.Fuchsia);
            bitmap.MakeTransparent(Color.Black);
        }
        #endregion
        NavBar表徵圖透明#region NavBar表徵圖透明
        public static void NavBarItemTransparent(NavBarControl navbar)
        ...{
            foreach (NavBarGroup group in navbar.Groups)
            ...{
                FormMain.BitmpTransparent(group.SmallImage as Bitmap);
                FormMain.BitmpTransparent(group.LargeImage as Bitmap);

                foreach (NavBarItemLink itemLink in group.ItemLinks)
                ...{
                    FormMain.BitmpTransparent((itemLink.Item as NavBarItem).SmallImage as Bitmap);
                }
            }
        }
        #endregion
        Bar表徵圖透明#region Bar表徵圖透明
        public static void BarItemTransparent(BarManager bar)
        ...{
            foreach (BarItem item in bar.Items)
            ...{
                if (item.Glyph != null)
                    FormMain.BitmpTransparent(item.Glyph as Bitmap);
            }
        }
        #endregion

b.從7.1/7.2升級到7.3
編譯時間可能出現資源檔(*.resx)控制項版本錯誤,定位到出錯的行,向上找到最近的PublicKeyToken=xxxxxxxxxxxxxxxx的地方
到源碼目錄Sources下找到PublicKeyToken.txt,這個文字檔是按前面步驟編譯時間自動產生的,記錄了公開金鑰標記。
而ProjectConverter進行轉換時並不會自動替換這個公開金鑰碼。
選中出錯資源檔的PublicKeyToken=xxxxxxxxxxxxxxxx,按Ctrl+H彈出替換對話方塊,在替換為文字框輸入PublicKeyToken=,
然後將PublicKeyToken.txt中的公開金鑰複製並粘貼到後面,尋找範圍改為:整個解決方案,執行全部替換
再重建解決方案就沒問題了

4) 更改ClickOnce布署
最後,還需要對ClickOnce布署進行一些調整
點擊 項目菜單 -> 屬性... 啟動項目屬性畫面,選擇“發布”選項卡並點擊“應用程式檔案(i)...”按鈕
在彈出畫面中選中顯示所有檔案,將老的DXperience程式集DLL從中刪除,並將新的DXperience程式集DLL的發布狀態改為“包括”
點擊“立即發布”按鈕進行發布,從用戶端更新後測試,順利通過

如果你是採用的安裝程式,也只要替代DXperience程式集DLL就行了

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.