公司的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

5

6

7

8

9

10

11

12

13

14

并把SetupCode项目添加为部署项目的主输出,并添加为到自定义操作中:
设置主输出来自SetupCode(活动)的CustomActionData属性为
/EditionSelect=[EDITIONSELECT] /LogicPath=[TARGETDIR]
然后生成项目后发现安装的时候只要安装路径中只要含有空格就会报错,比如:
C:\Program Files\Corp
而没有空格的时候就不会出错,郁闷了很久了,最好乱试了下发现把CustomActionData改成这样就行了,不知道什么原因:
/EditionSelect=[EDITIONSELECT] /LogicPath="[TARGETDIR]\"
不知道有没有人碰见过同样的问题,碰见过的话希望能告只你的解决方法!
上面的部署过程写的很简介,如果有人看的不是很明白,可以先下载这个文件看看,以前收藏某位网友的:vs.net安装部署深入研究.rar
分类:
.NET
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!