2009-06-11 29 views

回答

9

我们有相同的场景,它的工作原理。您对传递的参数如下

InstallUtil.exe /Param1="Value" /Param2="Value" "Path to your exe" 

,那么你已经覆盖你的安装程序安装方法

public override void Install(System.Collections.IDictionary stateSaver) 
{ 
    var lParam1 = GetParam("Param1"); 
} 

private string GetParam(string pKey) 
{ 
     try 
     { 
      if (this.Context != null) 
      { 
       if (this.Context.Parameters != null) 
       { 
        string lParamValue = this.Context.Parameters[pKey]; 
        if (lParamValue != null) 
         return lParamValue; 
       } 
      } 
     } 
     catch (Exception) 
     { 
     } 
     return string.Empty; 
    } 
+0

仅供将来参考:如果您通过参数(动态服务创建)传递服务名称,则需要在OnBeforeInstall中获取参数。谢谢你的回答。 – 2009-06-12 13:36:05

0

尝试NSIS。这是一种为安装而构建的脚本语言,允许您执行各种复杂的事情。就我个人而言,我将它用于超越“下一步,下一步,下一步”的任何安装。很光滑,并不是所有这些都很难学。

0

构建和安装Visual Studio或类似Wix。在Visual Studio中,您可以执行Custom Action并在CustomActionData字段中传入参数。

2

其实它可以与InstallUtil.exe时,.NET安装实用程序来做到这一点随.NET Framework一起提供。

看看这个CodeProject文章。

+0

页面非常差,但源代码显示了一些有趣的内容+1。 – 2009-06-12 13:36:37