C# 程序打包 能够覆盖安装

一、改变ProductCode、Version(version比前一版本要高比如以前1.0.0现在就是1.0.1),保持UpgradeCode不变(当设置RemovePreviousVersion=true时就是靠它来找到卸载旧版本)

二、设置detectnewerinstalledversion=true(自动检测新版本,如果装了高版本再安装低版本则提示不让安装),

三、设置RemovePreviousVersion=true(安装高版本的同时自动卸载低版本,如果为false则添加/删除会出现两个相同安装记录,如果在卸载时想保留某些文件,则把对应文件的属性值Parmanent=true)

四、在注册表编辑器写入安装标志键值(用来下一次安装时检测是否安装过此软件)和安装路径键值(为下一次安装得到上一次安装路径可以做相应操作)

(1)在“安装部署项目”上点击“注册表编辑器”

(2)在HKey_LOCAL_MACHINE_SoftWare

下新建键Manufacturer 代表软件的制造商。

(3)右键新增字符串值,设置Name和Value属性。

 Name   ProjectClient

 Value  @[TARGETDIR]ProjectClient.exe

       [TARGETDIR]代表用户选择的安装目录。

       ProjectClient.exe 代表exe的名称。   这个键记录安装程序的完整位置

(4)读取exe路径:

      string path=Registry.Gt(****);

     if(path[0]=='@') path=path.Remove(0,1) ; //移除首字符@

     return path; 

五、在启动条件编辑器搜索目标计算机/添加注册表搜索(主要用以得上一次安装标识和安装路径),然后再通过属性值传到 主输出来自SetupInstall(活动)

(参数传值:/productcode=[ProductCode] /regeditsetupvalue=[REGEDITSETUPVALUE] /regeditsetuppath=[REGEDITSETUPPATH] /targetdir=[TARGETDIR])

六、关于自动更新(修改Assembleinfo.cs下的版本号)

需要在你当前解决方案下的->Properties->Assembleinfo.cs里面的[assembly:AssemblyVersion(“1.0.0.0”)]
[assembly: AssemblyFileVersion(“1.0.0.0”)]进行修改,这两个属性一般在Assembleinfo.cs的最下面。

这样才能做到自动更新

七、关于覆盖安装

在安装时想实现覆盖安装,那么

安装程序之要判断一下HKEY_LOCAL_MACHINE/SOFTWARE/ZH/CMIS_Client 是否存在

添加一个注册表搜索

在属性栏ROOT里选择vsdrrHKLM

然后在RegKey里填写SOFTWARE/ZH

在value里填写CMIS_Client。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值