2

4台のサーバーに展開されるWindowsサービスを構築しています。私のユーザーは、サービスに共通の場所から構成ファイルを読み取らせ、それをOnStartにロードさせたいと考えています。

サービスのインストール時に、構成ファイルへのファイルパスとファイル名の入力をユーザーに求め、そのデータをMy.Settingsに保存するようにインストールします。

デプロイメントプロジェクトのUIでEDITA1変数とEDITA2変数を設定して、ユーザーにパスとファイル名の入力を求める方法を理解しましたが、これらの値をサービスの設定に取り込む方法がわかりません。 。

助けてください。

-ジェニファー

4

1 に答える 1

0

カスタム アクション プロパティ ウィンドウで CustomActionData プロパティを使用してカスタム アクションに渡そうとしましたか。構文は /param=[EDITA1] です

Context.Parameters には、1 つのエントリ キーが「param」であるディクショナリが含まれます (上記の例では、それが私が指定したキーです)。

スペースを含むパラメーターの受け渡しに問題があります。ガイドラインは次のように述べています。

インストール コンポーネント (ProjectInstaller クラス) であるカスタム アクションの場合、CustomActionData プロパティは /name=value の形式を取ります。複数の値は、1 つのスペースで区切る必要があります: /name1=value1 /name2=value2。

値にスペースが含まれる場合は、引用符で囲む必要があります: /name="a value". Windows インストーラーのプロパティは、角かっこで囲まれた構文を使用して渡すことができます: /name=[PROPERTYNAME]。

ディレクトリを返す [TARGETDIR] などの Windows インストーラー プロパティの場合、括弧に加えて、引用符と末尾のバックスラッシュを含める必要があります: /name="[TARGETDIR]\"。

必要なファイル パスに「[EDITA1]\」を入力しようとすると、「C..\Microsoft...」の「FileNotFound」エラーが表示されますが、パスにMicrosoftが含まれていませんでした。

于 2010-10-25T09:32:10.010 に答える