ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2712|回复: 9

[分享] 使用ClickOnce实现软件的自动更新

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-8-7 21:48 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 yes363001640 于 2021-8-7 22:12 编辑


之前学习vba的时候看到论坛又大神通过vba的模块删除导入来更新xlsm文件的代码,有局域网的,也有可以在外网更新的。
通过那个帖子的例子自己也完成了vba的代码更新测试。
(我之前的更新思路是把写好的程序打包好放到一个网站,同时放一个ini或者txt之类的,每次程序运行的时候去下载那个txt,然后读取里面的版本号和软件对比,如果需要更新就再下载新的软件包。然后等客户重新安装。)
接触vsto之后也是用当初的思路去完成程序的更新,但是这种更新有些不方便。而且对于客户来说也不友好。前几天看到了这个方法,并且试了一下,觉得非常方便,所以分享一下。

正题:第一步就是建立自己iis网站,
image.jpg image.jpg
例如这样,建立外网可以访问的可能麻烦一点点,但是你先测试的时候可以先建立内网访问的就可以了。
外网建站
1.防火墙入站规则要设置(不会就直接关掉防火墙好了,当然那样不安全)
2.端口要映射,映射端口建议避开80,有的80用不了。

因为主要分享clickonce的部署更新方面的设置。所以就不一一说网站的问题了,

先看一下程序代码,为了便于测试就写了一个窗体和一个按钮和弹窗。
image.png image.png

下面进入发布界面
image.jpg image.jpg
image.jpg image.png
image.jpg image.jpg
image.jpg image.png
image.jpg image.png
大体上面就是这样,当然可能还是有些需要注意的地方。我只是把自己想的起来说一下。
下面看安装和更新图
image.png image.jpg 安装运行后是这样的
image.png image.png

发布之后再去打开刚刚桌面的那个软件,发现没有提示更新,不要慌。关掉软件,再重新打开一次。就提示你要又更新了
如下图
image.jpg
我理解是一次打开他检测到有更新,第二次打开才提示更新。
image.png
我点确定之后运行出来的就是新的版本了。
以上就是我的分享



image.png

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-8-8 13:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
感谢分享,学习了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-11-16 09:52 | 显示全部楼层
补充一下,以上只适合窗体程序,office 的外接程序,也就是office的插件因为信任问题,导致更新不成功,后来在百度查到,催化剂作者的视频,说是要弄签名,我弄了签名之后还是要设置信任,不知道怎么解决这个问题。最后在百度找到一个修改注册表的方法,

另存为reg运行之后就可以。
测试更新不能在自己电脑测试,要在虚拟机上面。最后就成功的运行了,也就实现了实时更新的效果。
另外我使用的第三方控件和插件都会导致安装失败,我把第三方控件和插件都删除了。
“老周”的那个教人签名的帖子,我的在命令窗口输入不行,不知道为啥,在开发者powershell里面可以。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\TrustManager\PromptingLevel]
"MyComputer"="Enabled"
"LocalIntranet"="Enabled"
"Internet"="Enabled"
"TrustedSites"="Enabled"
"UntrustedSites"="Enabled"

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-1-6 09:18 | 显示全部楼层
留名先mark,感谢楼主无私的分享,催化剂作者的那个原贴可以分享一下不

TA的精华主题

TA的得分主题

发表于 2022-1-18 17:21 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-4-6 11:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
yes363001640 发表于 2021-11-16 09:52
补充一下,以上只适合窗体程序,office 的外接程序,也就是office的插件因为信任问题,导致更新不成功,后 ...

https://blog.csdn.net/qq_33212020/article/details/109030433
打开vs toosl
输入
makecert -r -n "CN= myselfName " -b 01/12/2021 -e 01/12/2022 -sv myselfName.pvk myselfName.cer

2.1.1 按下Windows+R组合键输入“certmgr.msc”,点击确定。

导出,含私钥,更改加密方式为AES-256方式,点击“下一步”
方法二
命令1:makecert -r -n "CN=测试的证书" -b 02/27/2019 -e 12/16/2030 -sv 测试的证书.pvk 测试的证书.cer
命令2:Cert2spc  测试的证书.cer 测试的证书.spc
命令3:pvk2pfx -pvk 测试的证书.pvk -spc  测试的证书.spc -pfx  测试的证书.pfx -pi 123456 -po 123456 -f

TA的精华主题

TA的得分主题

发表于 2023-1-18 14:47 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-5-8 14:21 | 显示全部楼层
感谢作者分享!另外想问下,只能通过 IIS 网站更新吗?能不能直接使用共享路径更新?

TA的精华主题

TA的得分主题

发表于 2023-11-16 11:33 | 显示全部楼层
本帖最后由 xwsdurian 于 2023-11-16 11:35 编辑
yes363001640 发表于 2021-11-16 09:52
补充一下,以上只适合窗体程序,office 的外接程序,也就是office的插件因为信任问题,导致更新不成功,后 ...

你好,我这边做的是excel的外接程序,按照您的步骤,发现两个问题:
1、发布选项与您的截图不一样
2、发布时成功了,但没有生成html页面




无标题.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-12-12 08:11 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
xwsdurian 发表于 2023-11-16 11:33
你好,我这边做的是excel的外接程序,按照您的步骤,发现两个问题:
1、发布选项与您的截图不一样
2、 ...

vsto界面是有点区别,vsto的这个要有证书,用户先信任证书,或者先改用户的注册表。不然你发布成功了用户那边还是无法正常安装。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-21 19:11 , Processed in 0.052414 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表