公司的1个产品有3个版本,希望在安装程序里让客户选择安装哪个版本。并把客户选择的版本信息写入文件。
所以先在安装项目的用户界面中添加了1个3个RadioButton的窗体(如图:)
并设置此窗体的属性为:
然后添加1个新项目SetupCode,并添加1个安装程序类:
并在安装程序类的
1
protected
override
void OnAfterInstall(IDictionary savedState)
2 {
3 // 取选择的版本号
4 string _strSelect = Context.Parameters["EditionSelect"];
5 // 取安装路径
6 string _strPath = Context.Parameters["LogicPath"];
7 System.IO.StreamWriter _sw = new System.IO.StreamWriter(_strPath + @"\1.txt");
8 _sw.WriteLine(_strSelect);
9 _sw.WriteLine(_strPath);
10 _sw.Flush();
11 _sw.Close();
12
13 base.OnAfterInstall (savedState);
14}
2 {
3 // 取选择的版本号
4 string _strSelect = Context.Parameters["EditionSelect"];
5 // 取安装路径
6 string _strPath = Context.Parameters["LogicPath"];
7 System.IO.StreamWriter _sw = new System.IO.StreamWriter(_strPath + @"\1.txt");
8 _sw.WriteLine(_strSelect);
9 _sw.WriteLine(_strPath);
10 _sw.Flush();
11 _sw.Close();
12
13 base.OnAfterInstall (savedState);
14}
并把SetupCode项目添加为部署项目的主输出,并添加为到自定义操作中:
设置主输出来自SetupCode(活动)的CustomActionData属性为
/EditionSelect=[EDITIONSELECT] /LogicPath=[TARGETDIR]
然后生成项目后发现安装的时候只要安装路径中只要含有空格就会报错,比如:
C:\Program Files\Corp
而没有空格的时候就不会出错,郁闷了很久了,最好乱试了下发现把CustomActionData改成这样就行了,不知道什么原因:
/EditionSelect=[EDITIONSELECT] /LogicPath="[TARGETDIR]\"
不知道有没有人碰见过同样的问题,碰见过的话希望能告只你的解决方法!
上面的部署过程写的很简介,如果有人看的不是很明白,可以先下载这个文件看看,以前收藏某位网友的:vs.net安装部署深入研究.rar
本文转自BearRui(AK-47)博客园博客,原文链接: http://www.cnblogs.com/BearsTaR/archive/2006/04/29/Setup.html ,如需转载请自行联系原作者