前言

当使用.NET“安装项目”打包的安装文件,再次安装的时候会弹出如下提示,这个时候会让我们很郁闷,怎样才能自动卸载上一个安装的版本呢?方法很简单,只需简单的两个操作步骤即可解决。

操作步骤

主要由RemovePreviousVersions属性和ProductCode值来决定。

MSDN上是这样说的“安装程序检查“UpgradeCode”和“ProductCode”属性,以确定是否应移除早期版本。新旧两种版本的 UpgradeCode 必须相同;ProductCode 必须不同。” RemovePreviousVersions 属性

在“部署项目属性”当中,设置RemovePreviousVersions属性值为true,并且更改Version的版本号,更改版本号的时候会弹出如下提示,点击“是”即可生成一个新的ProductCode值。

如果不想改变安装文件的版本,也可以直接在ProductCode属性文本框上打开“产品代码”框,点击“新代码”按钮,也可达到同样的效果。

按照上面的方法生成安装文件以后,再次安装的时候就会自动把上一个版本的文件卸载掉了。

下面再讲一个小技巧,如何在安装目录当中添加卸载项,卸载安装文件。

打开“文件系统”视图,在根目录中选择添加文件,选择“C:\Windows\System32\msiexec.exe”系统文件,然后,在根目录当中右键“创建新的快捷方式”,然后选择刚刚添加的msiexec.exe文件,并更改名称为“卸载”,在“卸载”项的属性页中,设置Arguments的值为/x [ProductCode],当想要卸载应用程序的时候在根目录当中双击“卸载”项,即可不用到控制面板中也能卸载应用程序了。

分享自:http://www.cnblogs.com/zhaoblogs/archive/2012/10/26/2741258.html

from:http://www.cnblogs.com/JuneZhang/archive/2012/12/02/2798467.html

【转】.NET 安装和部署(Installer) 如何卸载上一个版本的更多相关文章

  1. Activit 5.13 工作流部署新版本后回退到上一个版本

    有时因为某些原因Activit流程部署新版本后,还没有发起流程,回退到上一个版本.操作过程: 1.查询版本更新记录,记录字段ID_值,假设值为100: select to_char(t.deploy_ ...

  2. Linux下Redis的安装和部署

    一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多 ...

  3. linux下安装与部署redis

    一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多 ...

  4. Redis学习笔记之Linux下Redis的安装和部署

    0x00 Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相 ...

  5. Linux下Redis的安装和部署 详细

    一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多 ...

  6. Linux(Centos7)下redis5安装、部署、开机自启

    1.什么是redis redis是用C语言开发的一个开源的高性能键值对(key-value)数据库.它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止redis支持的键值数据类型如下字符串 ...

  7. 持续集成之⑤:jenkins结合脚本实现代码自动化部署及一键回滚至上一版本

    持续集成之⑤:jenkins结合脚本实现代码自动化部署及一键回滚至上一版本 一:本文通过jenkins调用shell脚本的的方式完成从Git服务器获取代码.打包.部署到web服务器.将web服务器从负 ...

  8. jenkins结合脚本实现代码自动化部署及一键回滚至上一版本

    持续集成之⑤:jenkins结合脚本实现代码自动化部署及一键回滚至上一版本 一:本文通过jenkins调用shell脚本的的方式完成从Git服务器获取代码.打包.部署到web服务器.将web服务器从负 ...

  9. Windows下Git的下载、安装、设置用户名和邮箱、创建版本库等

    Git官网:https://git-scm.com/ 一.Git下载 官网首页下载,当前最新版本:2.24.1 本人下载的是Git for Windows版本:Git-2.24.1.2-64-bit. ...

随机推荐

  1. 当前页面js代码

    <script type="text/javascript"> var url = location.href; $(function(){ var url = loc ...

  2. C#操作指针

    如何:递增和递减指针 使用增量和减量运算符 ++ 和 -- 可以将 pointer-type* 类型的指针的位置改变 sizeof (pointer-type). 增量和减量表达式的形式如下: ++p ...

  3. 快速实现Magento多语言的设置和产品数据的多语言方法

    MagenTo默认支持多语言网店,不过要使用多语言功能,需要进行一些设置. 一.后台多语言支持(中文化) Magento登录后台时默认的是显示的是英文界面,在页面左下角选择语言为中文就会跳转为中文界面 ...

  4. struts2 中的 result 返回类型是 json 的配置问题

    struts2 中的 result 返回类型是 json 的配置问题 1.引入包(本文中的包全部引自struts-2.1.8.1\lib): struts2-json-plugin-2.1.8.1.j ...

  5. MySQL 添加列,修改列,删除列

    创建后表的修改 alter table 语句用于创建后对表的修改, 基础用法如下: 添加列 基本形式: alter table 表名 add 列名 列数据类型 [after 插入位置]; 示例: 在表 ...

  6. 一步一步使用sklearn

    http://kukuruku.co/hub/python/introduction-to-machine-learning-with-python-andscikit-learn Hello, %u ...

  7. android获取inflater

    LayoutInflater作用是将layout的xml布局文件实例化为View类对象. 获取LayoutInflater的方法有如下三种: ? LayoutInflater inflater=(La ...

  8. centos 主从复制

    1.主服务器rpm安装mysql 2.复制一台服务器叫slave(从服务器),一会儿要用 3.在主服务器,修改my.cnf文件 找到server-id,在它的下面加上 binlog-do-db = h ...

  9. 矩阵基本运算的 Python 实现

    from...import与import区别在于import直接导入指定的库,而from....import则是从指定的库中导入指定的模块 import...as则是将import A as B,给予 ...

  10. ES6-Symbol

    javaScript的数据类型:number,string,boolean,undefined,null,object ES6带来了一个新的数据类型:symbol 目的是:解决对象的属性名冲突的问题. ...