如何使System.Configuration.Install.Installer从安装项目中获取变量?
我的解决方案中有2个项目
-
Windows服务
-
它的安装项目
我需要我的ProjectInstaller : System.Configuration.Install.Installer
的方法调用OnAfterInstall来从安装项目中获取ProductName
。 我怎么做?
在安装项目中右键单击项目,然后选择查看>自定义操作。 添加自定义操作。 现在选择Add Output,选择您的Web服务项目,然后单击OK。
现在选择自定义操作并将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();
您可以在其中发表评论,以便您可以调试安装程序类。
希望这可以帮助。