最近写个小程序,打包覆盖安装更新时老是不起作用,还是原来的程序。

在网上四处查找,productcode和ersion都已经更改,removepreviousversions也设置成true了,可就是不能更新。

最后对比了下程序,发现每次覆盖安装后安装路径下别的文件的最后修改时间都更新了,就是主输出文件.exe的修改时间一直没有改变过,又看了下控制面板,程序的版本确实一直在更新,那么问题就出来了,程序不更新的原因就在于主输出文件一直没有更新。

可是每次更新安装包的时候都重新生成过,在项目文件中主输出文件也是一直在更新的。在网上几经周折,终于找到了原因所在。

在项目中的Properties文件夹下有个AssemblyInfo.cs文件,打开,拉到最后,有这么几行代码:

  1. // 程序集的版本信息由下面四个值组成:
  2. //
  3. //      主版本
  4. //      次版本
  5. //      内部版本号
  6. //      修订号
  7. //
  8. // 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值,
  9. // 方法是按如下所示使用“*”:
  10. // [assembly: AssemblyVersion("1.0.*")]
  11. [assembly: AssemblyVersion("1.0.0.0")]
  12. [assembly: AssemblyFileVersion("1.0.0.0")]

最后两行就是导致主输出文件一直不更新的罪魁祸首。

虽然每次生成,项目内容都更改了,但是生成的主输出文件的版本一直没有改变,这就导致了每次覆盖安装主输出文件都不会被修改,因为他们的版本是一致的。

so,每次更新前,先修改主输出文件的版本号,然后再生成项目输出,然后修改安装程序版本号、productcode,再复制productcode到卸载程序快捷方式,最后重新生成安装程序。这样就可以覆盖安装了,安装后的程序也可以正常更新了。^_^

打包过程:

VS 程序打包/安装包制作

C# 程序打包 升级方案要点

VS C#项目打包安装程序(转)

C#WinFrom程序打包/图解VS2008项目的安装与部署图解

VS C#程序打包覆盖安装不能更新的解决方法的更多相关文章

  1. CocoaPods pod 安装、更新慢解决方法

    使用CocoaPods来添加第三方类库,无论是执行pod install还是pod update都卡在了Analyzing dependencies不动了,令人甚是DT. 每一次都忘记现在自己记录一下 ...

  2. Android 程序打包和安装过程

    APP程序打包与安装的流程: APP的安装过程:

  3. DirectX SDK (June 2010)安装错误S1023,解决方法

    转自:http://hi.baidu.com/rootcat/item/6730f15f85e2c1958c12ed81 DirectX SDK (June 2010)安装错误S1023,解决方法 导 ...

  4. win7系统 windows update 总是更新失败解决方法:

    win7系统 windows update 总是更新失败解决方法: 右键单击桌面“计算机”选择“管理“. 进到“计算机管理“窗口后,展开”服务和应用程序“并双击”服务“,在窗口右侧按照名称找到”Win ...

  5. SQL2008R2安装碰到问题的解决方法(iso文件用对应的工具)

    SQL2008R2安装碰到问题的解决方法     安装谁不会啊,这么简单,是啊,可是匹配包时就不是那么顺利啊.就像以前的Ruby还专挑匹配版本的包一样,不像现在的Py自动为我们找,这是Mar 7贴在Q ...

  6. [Q]“获取AutoCAD安装信息时失败...”解决方法

    “获取AutoCAD安装信息时失败...”解决方法:在“setup.exe”上右键,以管理员权限运行即可.

  7. npm install安装时忘记--save解决方法

    title: npm install安装时忘记--save解决方法 date: 2017-05-07 20:17:54 tags: npm categories: --- 网上还有一个解决方案就是: ...

  8. VS2017无法进入安装界面问题的解决方法

    VS2017无法进入安装界面问题的解决方法 打开C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe也没有 ...

  9. QT编译发布程序后报错如缺少dll、“应用程序无法正常启动(0xc000007b)”的可能解决方法

    QT编译发布程序后报错如缺少dll.“应用程序无法正常启动(0xc000007b)”的可能解决方法 最近项目要用qt,因为初学没有经验,遇到些小问题常常没什么头绪,也查不到解决方法,刚刚还因为低端错误 ...

随机推荐

  1. Annotate类

    在Annotate类中有个Annotator接口,定义如下: /** A client that has annotations to add registers an annotator, * th ...

  2. elasticsearch(一) 之 elasticsearch初识

    目录 一 .elasticsearch 二 . elasticsearch 名词解释 集群(cluster) 节点(node) 索引(index) type(类型) Document(文档) shar ...

  3. gitlab+jenkins+hook代码自动构建发布上线

    Gitlab+Jenkins+Hook 1.gitlab和jenkins的安装见: http://www.cnblogs.com/cuishuai/p/7544663.html http://www. ...

  4. SC Create 创建一个Windows系统服务 转

        转自:http://www.360doc.com/content/13/0428/09/7555793_281451268.shtml sc create Serv-U binpath= &q ...

  5. 关于拓展jQuery功能插件的写法

    有两种方法: 1.jQuery.fn.extend() 用于将一个对象的内容合并到jQuery的原型,以提供新的jQuery实例方法 例子: <span id="test"& ...

  6. 把AspDotNetCoreMvc程序运行在Docker上-part3:使用独立的存储容器

    接上一篇博文<把AspDotNetCoreMvc程序运行在Docker上-part2:修改容器以及发布镜像>,这次我们看看如何使用docker存储数据. 背景 之前的示例都只有一个网站应用 ...

  7. 【eclipse修改默认注释】

    一.背景简介 丰富的注释和良好的代码规范,对于代码的阅读性和可维护性起着至关重要的作用.几乎每个公司对这的要求还是比较严格的,往往会形成自己的一套编码规范.但是再实施过程中,如果全靠手动完成,不仅效率 ...

  8. shellExcute 与shellExcuteex 的一些东西

    最近在做外部调用exe并传给exe相应参数 方法有两种.. 1,用program.start() 2,shell() 3,调用API 以下内容来自http://www.pinvoke.net/defa ...

  9. MyBatis源码解析之数据源(含数据库连接池简析)

    一.概述: 常见的数据源组件都实现了javax.sql.DataSource接口: MyBatis不但要能集成第三方的数据源组件,自身也提供了数据源的实现: 一般情况下,数据源的初始化过程参数较多,比 ...

  10. HDU 2669 Romantic 扩展欧几里德---->解不定方程

    Romantic Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...