关于安装部署一些小问题
2012-08-09 18:31 谢中涞 阅读(1131) 评论(0) 编辑 收藏 举报本文主要用来记录在制作安装程序遇到的一些小问题及解决方案,可能会不断更新.当然这不是什么高深秘籍,各位看官如果你对此已十分熟悉,请轻拍....
- 如何获取安装目录.
1. 1 将安装部署项目切换到"视图->自定义操作", 在"安装"节点下展开应用程序的属性窗口,并在其属性" CustomActionData "中设置为 /targetdir="[TARGETDIR]\", 这其中[TARGETDIR]标签就表示当前的安装路径.targetdir 为我们在程序中获取的键值名称,如下图:
1.2 在程序中获取,有了上面的步骤后,我们就可以在对应项目中的 System.Configuration.Install.Installer 类中 通过如下方式获取: var setupDir = this.Context.Parameters["targetdir"]; 注意此处的 targetdir 应该是和你在上一步中设置的一样.
2. 如何通过Process启动外部程序并传递参数.
2.1 启动外部程序
//安装结束后,自动启动配置程序 try { var setupDir = this.Context.Parameters["targetdir"]; if (!string.IsNullOrEmpty(setupDir)) { var configFile = Path.Combine(setupDir.TrimEnd(new char[] { '\\' }), "PDWGenerateConfig.exe"); if (File.Exists(configFile)) { ProcessStartInfo ps = new ProcessStartInfo(); ps.FileName = configFile; ps.UseShellExecute = false; //定义参数:在配置结束后配置程序自动退出,完成本次安装 ps.Arguments = "x"; Process process = new Process(); process.StartInfo = ps; process.Start(); process.WaitForExit(); } } } catch //忽略异常 { }
2.2 程序接收端,获取参数.
//获取启动参数 string[] argument = Environment.GetCommandLineArgs(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); bool temp = false; if (argument != null && argument.Length > 1 && argument[1].Equals("x", StringComparison.CurrentCultureIgnoreCase)) { temp = true; } Application.Run(new MainForm(temp));
作者:谢中涞,QQ:763625930,E-mail:zhonglai_xie#126.com(替换#为@)
本着互相分享的精神,文章欢迎转载,但转载需要标明本文出处.除特殊声明外,本文章均首发于博客园.
本着互相分享的精神,文章欢迎转载,但转载需要标明本文出处.除特殊声明外,本文章均首发于博客园.