一、改变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。