带一键部署的Windows窗体应用版本持续还原为1.0.0.0求助
Windows窗体应用ClickOnce发布版本异常问题解决
问题核心
VS2017发布WinForms主项目Main.Win时,设置版本2.4.0.10后发布自动还原为1.0.0.0,重启VS后配置丢失;手动修改manifest文件触发哈希不匹配;之前发布1.0.0.0后版本自动递增到1.0.0.1,但发布时提示覆盖旧版本,重启后版本回退。
解决步骤
1. 修正项目文件的版本绑定
VS发布设置依赖项目文件的版本配置,若配置冲突会导致版本重置:
- 右键
Main.Win项目 → 卸载项目 - 右键卸载的项目 → 编辑
Main.Win.csproj - 找到并调整以下XML节点,确保版本统一:
<!-- 程序集版本 --> <AssemblyVersion>2.4.0.10</AssemblyVersion> <!-- 文件版本 --> <FileVersion>2.4.0.10</FileVersion> <!-- ClickOnce发布版本 --> <PublishVersion>2.4.0.10</PublishVersion> <!-- 若需自动递增,可设置为: --> <ApplicationVersion>2.4.0.%2a</ApplicationVersion> <ApplicationRevision>10</ApplicationRevision> - 保存后重新加载项目,再打开发布设置确认版本是否保留。
2. 清理VS缓存与旧发布文件
缓存异常会导致配置读取错误:
- 完全关闭Visual Studio
- 删除项目根目录下的
.vs隐藏文件夹 - 清空生产机
C:\APP\Test目录下的旧发布文件(保留Application Files时,删除对应旧版本子文件夹) - 重启VS,重新配置发布版本后尝试发布
3. 修复哈希不匹配问题
手动修改manifest会破坏签名哈希,需让VS自动生成:
- 打开项目发布设置,切换到
签名选项卡,确保勾选为ClickOnce清单签名 - 删除项目目录下的
obj和bin文件夹,重新生成整个解决方案 - 重新配置发布版本后点击发布,VS会自动生成正确的manifest和哈希值
4. 清除生产机旧版本残留
生产机的旧版本配置可能干扰新发布:
- 打开生产机
C:\APP\Test下的Main.Win.Test.application文件,检查版本信息是否与本地一致 - 删除
C:\APP\Test\Application Files下的旧版本文件夹(如Main.Win.Test_1_0_0_0),再重新发布
额外提醒
- 确保解决方案中9个项目的版本保持一致,避免依赖项版本不匹配引发异常
- 若使用版本控制,检查是否有项目文件的版本配置被版本控制覆盖
内容的提问来源于stack exchange,提问作者Jerramy
相关产品推荐
相关产品推荐

