且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用.NET部署程序出现的奇怪问题

更新时间:2022-08-18 22:34:11

  公司的1个产品有3个版本,希望在安装程序里让客户选择安装哪个版本。并把客户选择的版本信息写入文件。
      所以先在安装项目的用户界面中添加了1个3个RadioButton的窗体(如图:)
使用.NET部署程序出现的奇怪问题
并设置此窗体的属性为:
使用.NET部署程序出现的奇怪问题

然后添加1个新项目SetupCode,并添加1个安装程序类:

并在安装程序类的

 1使用.NET部署程序出现的奇怪问题protected override void OnAfterInstall(IDictionary savedState)
 2使用.NET部署程序出现的奇怪问题{
 3使用.NET部署程序出现的奇怪问题    // 取选择的版本号
 4使用.NET部署程序出现的奇怪问题    string _strSelect = Context.Parameters["EditionSelect"];    
 5使用.NET部署程序出现的奇怪问题    // 取安装路径
 6使用.NET部署程序出现的奇怪问题    string _strPath = Context.Parameters["LogicPath"];
 7使用.NET部署程序出现的奇怪问题           System.IO.StreamWriter _sw = new System.IO.StreamWriter(_strPath + @"\1.txt");
 8使用.NET部署程序出现的奇怪问题    _sw.WriteLine(_strSelect);
 9使用.NET部署程序出现的奇怪问题    _sw.WriteLine(_strPath);
10使用.NET部署程序出现的奇怪问题    _sw.Flush();
11使用.NET部署程序出现的奇怪问题    _sw.Close();
12使用.NET部署程序出现的奇怪问题
13使用.NET部署程序出现的奇怪问题    base.OnAfterInstall (savedState);
14使用.NET部署程序出现的奇怪问题}


并把SetupCode项目添加为部署项目的主输出,并添加为到自定义操作中:
使用.NET部署程序出现的奇怪问题
设置主输出来自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   ,如需转载请自行联系原作者