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.manifestPublishedFolder\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 配置文件相关推荐

  1. (转) 选择 NET Framework 3.5 SP1 系统必备,ClickOnce 发布提示缺少文件的解决方案

    ClickOnce 发布,在系统必备中勾选了 .NET Framework 3.5 SP1,并选择了"从与我的应用程序相同的位置下载系统必备组件"时,执行发布,会提示缺少很多文件, ...

  2. ClickOnce发布的程序注意点

    ClickOnce发布的程序,不可以使用管理员权限运行. 不可以通过修改manifest来要求管理员权限,因为这和clickonce的初衷是违背的.但是可以通过其他方式来是clickonce发布的程序 ...

  3. 百家号 不被推荐,原因:将旧闻冒充新闻发布,请修改后重新发布

    1.情景展示 在百家号进行创作的作者,发布文章时,难免会遇到审核不通过,下面说一下其中一种情况: 不被推荐,原因:将旧闻冒充新闻发布,请修改后重新发布. 2.解决方案 出现这种情况,原因:其它平台已存 ...

  4. MtaEdt22.exe修改IIS连接数无效的另类解决连接数的方法

    网上众多的文章都指出使用微软出品的 MtaEdt22.exe 修改, 但MtaEdt有安装不上或者修改无效的情况,记得很早就有注册表修改方法,直接修改注册表键值来实现,可基本搜索不到~ 今天找到了真正 ...

  5. Python打包文件到exe 修改图标 优化启动速度

    Python打包文件到exe 修改图标 优化启动速度 为什么要把Python打包程序到exe Python打包程序到exe 安装打包工具pyinstaller 打包程序为exe 修改打包文件的名称 修 ...

  6. sysprep.exe修改SID

    转载于 sysprep.exe修改SID 一.Sid的含义 Sid全称为security  identity,即网络安全标示.它用来唯一标示计算机账户.用户组和用户账户这些信息.他由计算机名.当前时间 ...

  7. 解决 ClickOnce 发布出现: 清单中的引用与下载的程序集 *.exe 的标识不匹配 问题

    平台版本信息 Windows : 6.1.7601.65536 (Win32NT) Common Language Runtime : 4.0.30319.17929 System.Deploymen ...

  8. vsto clickonce 发布setup.exe失败

    严重性 代码 说明 项目 文件 行 禁止显示状态 错误 未能将文件"app.publish\setup.exe"复制到"ftp://". visual stud ...

  9. dedeCMS修改文章更新发布时间问题

    今天在dedeCMS系统中,修改或文章时发现,只要提交以后,文章发布时间便是当前时间.但有时候修改文章以后并不想把文章发布时间也更新成修改时间.我希望的是,修改文章不对时间做更改保持文章原有发布时间, ...

最新文章

  1. 如何在游标里控制条件_热处理精密渗碳里的碳势如何控制
  2. 使用JJWT实现JWT代码示例
  3. oracle表设置主键自增长,笔记:oracle表设置主键自增长
  4. 02 ARM11 时钟初始化后的跑马灯程序
  5. 数据结构:栈的了解与示例(逆波兰表达式)
  6. Struts学习笔记总结
  7. vmware安装win10并使用xshell成功连接及虚拟机中win10设置静态ip
  8. 台式计算机最新配置,例举2019推荐组装台式电脑最新配置清单
  9. 【rzxt】巧用电池小工具 电量问题全掌握
  10. 15版计算机应用基础知识整理,[电脑基础知识]计算机应用基础.ppt
  11. 将Excel中的矩阵变成列表
  12. Centos7上配置安装Squid代理(主动代理,与透明代理)
  13. web server and web service
  14. mysql 从第几个字符串开始截取_Mysql字符串截取函数SUBSTRING的用法说明
  15. 自研还是采购BI系统?后悔知道得太晚!
  16. excel排版用于印刷:pdf批量转换为图片方便校验排版错误
  17. 机器学习7 - 算法进阶2
  18. 基于vue利用openlayers加载天地图的影像图,地形图
  19. C语言实验——时间间隔
  20. Cropping multiple images the same way

热门文章

  1. xml操作之创建xml节点
  2. 优化JavaScript代码
  3. 【密码学02】密码系统原理及数学背景
  4. Perl内置及特殊变量
  5. linux进程--死锁产生的原因及四个必要条件(六)
  6. linux 修改dmi信息,如何从linux清除DMI系统事件日志?
  7. python批量读取grib_windows python读取grib2数据
  8. windows批量创建域用户
  9. 程序员最不喜欢的编程语言大调查:Ruby、Objective-C、PHP中枪
  10. VMware系列:将物理机热迁移到ESXi中(必藏喔)