您的位置:首页 > 其它

关于安装部署一些小问题

2012-08-09 18:31 162 查看

本文主要用来记录在制作安装程序遇到的一些小问题及解决方案,可能会不断更新.当然这不是什么高深秘籍,各位看官如果你对此已十分熟悉,请轻拍....



如何获取安装目录.

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));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: