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

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

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

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

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

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

[csharp] view plaincopyprint?

  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项目的安装与部署图解

时间: 2024-10-09 07:50:47

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

Java TM 已被阻止,因为它已过时需要更新的解决方法

公司的堡垒机需要通过浏览器登陆,且该堡垒机的网站需要Java的支持,最近通过浏览器登陆之后总是提示"java TM 已被阻止,因为它已过时需要更新的解决方法"导致登陆之后不能操作, 但是操作系统中确实已经安装了比较新的JDK,安装的JDK版本是jdk-7u67-windows-i586,因为太烦人,所以决定搞清楚报错的原因,一劳永逸,彻底解决这个问题 准备工作:安装JDK,安装版本jdk-7u67-windows-i586.exe,因为机器的Eclipse还依赖64位的JDK,所以另安

[转载]DirectX SDK (June 2010)安装错误S1023,解决方法

导致这个错误的原因是在安装DirectX SDK (June 2010)之前.我就安装了VS2010 . 所以也就安装了: Microsoft Visual C++ 2010 x86 Redistributable Microsoft Visual C++ 2010 x64 Redistributable 而DirectX SDK (June 2010)会在安装的过程中再次安装.囧 所以解决的办法就是在安装DirectX SDK (June 2010)之前先将以上两个程序卸载. 在运行中执行以下

WordPress程序打开速度慢的三种解决方法

WordPress程序打开速度慢的三种解决方法 最近好多用户反应,在使用WordPress程序的网站时,不论打开网站前台或是后台,速度都是非常慢.联想近期的GOOGLE断网事件,不难发现,原来是GOOGLE"故障"所致,以致WP内置的字体链接失效://fonts.googleapis.com/css?family=Open+Sans%3A300italic%2C400italic%2C600italic%2C300%2C400%2C600&subset=latin%2Clati

Win10提示“没有关联的电子邮件程序来执行请求的操作”的解决方法

Win10提示“没有关联的电子邮件程序来执行请求的操作”怎么办?明明win10系统是由邮件程序的,为什么会提示需要安装电子邮件程序呢?这是因为我们没有设置邮件关联程序来打开邮件或者是邮件app功能没有打开导致的.下面小编就详细的为大家介绍Win10提示“没有关联的电子邮件程序来执行请求的操作”的解决方法. 一.检测邮件默认打开程序是否设置. 1.win+i打开设置. 2.打开应用. 3.查看默认应用下电子邮件默认应用是否被设置为邮件或者自己安装的电子邮件软件. 4.如果没有设置则点击下拉选择邮件

Android SDK无法显示更新列表解决方法

解决办法: 第一步: 打开Windows中C:\WINDOWS\system32\drivers\etc\hosts,然后添加以下内容: 203.208.46.146 dl.google.com 203.208.46.146 dl-ssl.google.com 74.125.113.121 developer.android.com 第二步: 打开Android SDK Manager,选上方的菜单Tools,进入Options,在"Force https://- "前面打钩,就可以更

CUDA程序编译过程中产生警告的解决方法

有时候经常使用别人用Tabhost+其它的实现demo.单纯利用Tabhost该如何使用呢? 下面看例子: public class MainActivity extends TabActivity { public TabHost tabHost; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 获取对象 tabHost = getTabH

make安装redis遇到错误解决方法

zmalloc.o: In function `zmalloc_used_memory': /home/cqh/tar/redis-2.6.14/src/zmalloc.c:223: undefined reference to `__sync_add_and_fetch_4' collect2: ld 返回 1 make[1]: *** [redis-server] 错误 1 make[1]: Leaving directory `/home/cqh/tar/redis-2.6.14/src'

安装vmware tools失败解决方法

失败提示: reating a new initrd boot image for the kernel. update-initramfs: Generating /boot/initrd.img-3.11.0-12-generic vmware-tools-thinprint initctl: Job failed to start Unable to start services for VMware Tools Execution aborted. 解决方法一: 后来参照了这个网页 ht

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

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