部署项目中的自定义操作 - 提示用户输入值,然后从自定义操作中提取它们?

时间:2010-01-18 13:27:13

标签: windows-services custom-action

我正在构建一个将部署在四台服务器上的Windows服务。我的用户希望服务从公共位置读取配置文件,并将其加载到OnStart。

我希望安装在安装服务时提示用户输入配置文件的文件路径和文件名,然后将该数据保存在My.Settings中。

我已经想出如何在Deployment项目的UI中设置EDITA1和EDITA2变量,以便提示用户输入路径和文件名,但我不知道如何将这些值输出到设置中服务。

请帮助。

-Jennifer

1 个答案:

答案 0 :(得分:0)

您是否尝试使用Custom Action属性窗口中的CustomActionData属性将其传递给自定义操作。语法是/ param = [EDITA1]

Context.Parameters将包含一个字典,其中1个条目键为“param”(在上面的示例中,这是我给它的键)。

我在传递包含空格的参数时遇到问题。准则说:

对于作为安装组件的自定义操作(ProjectInstaller class),CustomActionData属性采用/ name = value格式。 多个值必须用单个空格分隔:/ name1 = value1 / 2 =值2。

如果值中有空格,则必须将其包围 引号:/ name =“一个值”。 可以使用括号语法传递Windows Installer属性: /名称= [PROPERTYNAME]。

对于Windows Installer属性,例如[TARGETDIR] 返回一个目录,除括号外,还必须包含引号 和反斜杠:/ name =“[TARGETDIR] \”。

当我尝试“[EDITA1] \”获取我需要的文件路径时...我的“C .. \ Microsoft ...”出现'FileNotFound'错误,而我的路径没有 Microsoft