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

在网上四处查找,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. wordpress时间函数the_time() 详解

    一直以来,我对时间显示这一块都没有给予些微的关注,但昨天无意间在网络上看到了上面有一篇文章所说的就是the_time()时间函数,感觉很有必要整理一下,便将其中的内容整理了下来.可能很多朋友对于时间的 ...

  2. Python -- 网络编程 -- Socket简单网络通信

    Qt如果多线程的话,似乎会出BUG 1.服务端(server.py) import sys, socket, threading import binascii from PyQt4 import Q ...

  3. nginx pcre错误

    以上错误是因为pcre的路径指定的不对,--with-pcre模块应该指向的是pcre解压后的源码包,而不是pcre的安装路径. ]$./configure --prefix=/data01/logs ...

  4. WPF开发的彩票程序(练手好例子)

    前言 WPF是.NET最新的界面开发库,开发界面非常灵活!但是学习WPF难度也非常大. 应朋友之邀,编写了一个小程序.程序虽小,五脏俱全,WPF开发的灵活性可窥见一斑. 对于新手学习有很好的借鉴意义, ...

  5. dephi(pascal)中修改Label字体的样式(加粗,斜体,下划线)

    不废话,直接代码: Label1.Font.style:=[fsBold,fsItalic,fsUnderline]; //加粗.斜体,下划线

  6. Core中使用Hangfire

    之前使用Quartz.Net,后来发现hangfire对Core的继承更加的好,而且自带管理后台,这就比前者好用太多了. 安装注册 安装 PM> Install-Package Hangfire ...

  7. kill -3 获取threaddump信息---转载

    有些Java应用服务器是在控制台上运行,如Weblogic,为了方便获取threaddump信息,在weblogic启动的时候,会将其标准输出重 定向到一个文件,用"nohup ./star ...

  8. webbrowser打开新窗口事件+=

    测试可用: private void SaveSnapshot_Click(object sender, EventArgs e) { this.webBrowser1.Navigate(txturl ...

  9. WinForm通过操作注册表实现限制软件使用次数的方法

    1.创建注册表文件: 打开记事本,输入一些内容: ? 1 2 3 REGEDIT4 [HKEY_CURRENT_USER/Software/MyRegDataApp] "UseTime&qu ...

  10. VB/C#获取资源Rources

    VB.Net: My.Resources.ResourceManager.GetObject("data") C# Properties.Resources.文件名