2010-01-14 141 views

回答

8

在您的安装项目中,右键单击项目,然后选择视图>自定义操作。添加自定义操作。现在选择添加输出,选择您的Web服务项目,然后单击确定。

现在选择您的自定义操作,并设置CustomActionData属性包含类似/ProductName=[PRODUCTNAME] /whateveryouwant=[Whateveryouwant](注意,这些键值对,即访问产品名称,ProductName是键和值是PRODUCTNAME)。

注意CustomActionData包含将被传递到您的安装程序类的参数。 PRODUCTNAME是与用户界面对话框中的输入控件关联的属性名称,因此在您的情况下,您会提示用户在yor安装程序中输入产品名称。因此,标签是“产品名称”和相应的属性应该设置为PRODUCTNAME(很明显,你可以改变这一点,但是要注意的最重要的事情是,UI属性名必须是相同的CustomActionData属性名称)这个例子工作。现在

您的安装类中,你可以通过做

public override void Install(IDictionary stateSaver) 
{ 
     // If you need to debug this installer class, uncomment the line below 
     //System.Diagnostics.Debugger.Break(); 

     string productName = Context.Parameters["ProductName"].Trim(); 

     string whateveryouwant = Context.Parameters["whateveryouwant"].Trim(); 
} 

注获得产品名称我包括注释代码//System.Diagnostics.Debugger.Break();,你可以发表评论的,这样就可以调试安装程序类。

希望这有助于。

+0

优秀!谢谢! – 2010-01-15 11:15:14

+0

我遇到了两个问题:(1)它不工作(2)在调试时,它说:'无法计算表达式,因为当前方法的代码是optimized.' – 2010-01-15 15:28:23

+0

林不知道是什么问题,没有看到你代码或有更多的细节。你得到的错误是一个错误,发生在许多地区。如果你愿意的话,你可以给我一个你的设置项目的修剪版本,并且看看我能否看到它有什么问题。 – Somedeveloper 2010-01-18 17:26:28