通过MageUi.exe修改通过ClickOnce发布过的WPF browser application 配置文件
VS2008提供了ClickOnce功能方便開發人員發布和部署應用程序。但是,對于 WPF browser application,一旦發布后,你想去修改 app.config以改動里面的數據庫連接字符串或者服務調用地址協議等,你必須修改app.config文件然后通過publish功能重新發布。 因為ClickOnce對于發布的應用程序的manifest和xbap文件都經過hash算法打上標簽并簽名過以保障應用程序文件的版本一致性和安全性。
但是如果我們給客戶發布了應用程序,客戶想修改服務地址的話,讓客戶自己去pulish程序是不可能的。我經過了幾天摸索,發現了mageUI.exe這個工具是可以完成重新hash和簽名的,只要更新版本客戶端就會檢索到版本更新并下載新版本。
具體做法如下:
WPF browser application 發布目錄的程序結構一般是這樣的:
PublishedFolder\MyApp.xbap
PublishedFolder\setup.exe
PublishedFolder\Application Files\MyApp_0_0_0_1\ MyApp.xbap
PublishedFolder\Application Files\MyApp_0_0_0_1\ MyApp.exe.manifest
PublishedFolder\Application Files\MyApp_0_0_0_1\ MyApp.exe.deploy
PublishedFolder\Application Files\MyApp_0_0_0_1\ MyApp.exe.config.deploy
PublishedFolder\Application Files\MyApp_0_0_0_1\otherDependedLib.dll.deploy
1.??? 首先修改PublishedFolder\Application Files\MyApp_0_0_0_1\ MyApp.exe.config.deploy, 這個可以用文本編輯器直接修改或者用WCF 的SvcConfigEditor.exe來修改;
2.??? 找到mageui.exe這個工具,一般位于C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin 或者C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin;
3.??? 修改應用程序發布目錄的manifest和xbap文件
我們用mageui.exe工具來打開PublishedFolder\Application Files\MyApp_0_0_0_1\ MyApp.exe.manifest和 PublishedFolder\MyApp.xbap
因為WPF Brower Application一般是需要證書的,那我們先設置一下默認證書。 File->Reference, 選中 “Sign on save” 和 “Use default signing certificate” ,然后找到你的證書文件填充“Certificate file”
3.1 首先修改SLC.MES.exe.manifest文件,將Name->Version增加一個版本號(版本一定要變化,否則客戶端不會重新下載);
?3.2 保存該文件,這時候如果你的證書有密碼保護,會彈出一個警告對話框,因為剛才的設置里是沒有設置缺省密碼的地方的。不過沒關系,我們在隨后彈出的對話框里填入密碼即可。
? 3.3 然后修改發布根目錄下的MyApp.xbap。注意不是PublishedFolder\Application Files\MyApp_0_0_0_1\ MyApp.xbap,雖然這2個文件完全一樣,但實際起作用的是根目錄下的那個。
3.4 首先同樣將Name->Version增加一個版本號
3.5 然后點擊“Application Reference”里的Select Manifest按鈕,重新選擇一下剛才的那個manifest文件
3.6 同樣存盤
?
現在客戶端IE里重新訪問即可下載新版本。
轉載于:https://www.cnblogs.com/cubean/archive/2009/12/31/1637001.html
總結
以上是生活随笔為你收集整理的通过MageUi.exe修改通过ClickOnce发布过的WPF browser application 配置文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Design Pattern - Ada
- 下一篇: 什么是php商城系统?