您的位置:首页 > 其它

VS.net 安装包制作 个人经验记录

2012-07-20 15:37 260 查看
http://www.cnblogs.com/jason_lb/archive/2009/06/24/1509362.html

1.添加项目输出

在文件系统编辑器中,如果项目在一个解决方案中,则可以添加项目的主输出,为自动识别添加生成的exe,config,dll引用等;项目经常还包括一些资源文件,如图片,xml等,这些设置为内容的话,则可以添加项目的内容文件;如果还有一些特殊文件添加,比如第3点说到msiexec.exe文件,则可以直接浏览添加。

2.如何使新生成的安装包在安装时自动覆盖以前安装过的版本

设置部署项目属性RemovePreviousVersion为True,并将Version升高,并在生成时提示的“建议在更改版本时更改ProductCode,要进行该操作吗?”选择是。

3.如何添加卸载

找到msiexec.exe文件,一般在windows/system32下,添加到文件系统中,可以改名为UnInstall.exe,然后设置其快捷方式,最好重命名快捷方式并放到程序目录中,并设置其Arguments属性值为/x {[ProductCode]},这里用[ProductCode]可以自动获取安装包的ProductCode,网上多数让你直接拷贝部署项目的ProductCode,但是第2点提到了ProductCode是会变的。(ProductCode变是为了覆盖安装,ProductCode不变是为了检测升级)

4.如何在安装整个过程中实现自定义操作

首先需要新建一个类库项目,然后在其中添加安装程序类,根据需要添加相应的重写方法




例如要在安装完成后启动程序,可以这样写

protected override void OnAfterInstall(IDictionary savedState)

{

string appPath = Context.Parameters["targetdir"];

Process.Start(appPath + "XXX.exe");

base.OnAfterInstall(savedState);

}
Context.Parameters["targetdir"]为获取安装路径,需要在部署项目中设置

其次,在部署项目的自定义操作中,把安装,提交,回滚,卸载都添加上面项目的主输出

设置主输出的属性CustomActionData值为/targetdir="[TARGETDIR]\",这样Context.Parameters["targetdir"]才能获取到安装路径。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: