ClickOnce踩坑记录

本文详细记录了使用ClickOnce在Win10环境下发布与安装应用程序时遇到的各种异常情况及解决方案,包括开发环境配置、系统必备组件错误、安装时的常见错误及其解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ClickOnce踩坑记录

开发环境:

win10+vs2019+.net 4.5.2

发布时异常:

ERROR: 要在“系统必备”对话框中启用“从与我的应用程序相同的位置下载系统必备组件”,必须将“Microsoft .NET Framework 4.7.2 (x86 和 x64)”项的文件“Dot…
解决办法:
下载以下两个framework安装包:

  1. NDP452-KB2901907-x86-x64-AllOS-ENU.exe
    此包放到路径:C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX452

  2. NDP452-KB2901907-x86-x64-AllOS-CHS
    此包放到路径:C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX452\zh-Hans

  3. 注意放到相应版本对应的文件夹中即可

参考自这里

安装时异常

  1. 大部分安装时报错都可以通过新建一个项目调用原项目执行文件,将原项目所有文件当做新项目内容(.csproj文件支持通配符"<Content Include"OldDir**.")添加然后发布新项目来解决.

  2. 如果在项目发布后变更了项目生成时的.net版本旧程序更新会报错,解决办法是让客户卸载后重装应用.

  3. 为文件 xxx.dll 计算出的哈希值与清单中的指定值不同。
    原因:文件在上传过程中被串改,使得服务器上的文件MD5值与本地发布的不同.
    解决办法:重新上传报错文件.

  4. 连到系统上的设备没有发挥作用。 (异常来自 HRESULT:0x8007001F)
    排查办法:重新发布一版然后直接在开发机器上运行.application 一般会直接报出问题所在.(比如文件名过长等)

  5. 事务未完成。文件名可能太长。请缩短文件名,然后重试。 + 系统找不到指定的路径。 (异常来自 HRESULT:0x80070003);
    解决办法:用ClickOnce发布的应用程序注意目录不能太深,因为ClickOnce默认安装路径就已经很深了.

  6. 双击setup.exe后没反应:可能是网络太差 待超时时间达到后会报安装错误.

  7. 现象:程序安装后出现找不到一个xml文件(ClickOnce打包时都是包含了的);查看安装后的目录发现会部署成两个目录(epc…tion。。。和 epc.exe。。。)看上去主要文件是相同的;
    疑惑:为什么安装后会把程序多拷贝一份,而且一份存在该xml文件但实际执行的exe是另一目录下的
    解惑:因为ClickOnce安装时会把数据文件和其它程序文件的文件夹分开;在打包时ClickOnce会将数据库文件和xml文件自动识别为数据文件(可在发布选项卡中的应用程序文件里修改成“包括”即可)

  8. 安装时报错:不允许对应用程序文件和程序集进行 HTTP 重定向。无法下载 xxx.exe
    分析:可能是因为发布时直接发布的exe和dll原文件,有些系统的安全设置导致的无法直接下载.exe和.dll文件
    解决办法:重新发布成.deploy后缀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值