You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

带一键部署的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 15:35:03