1

だから..私はこのCAを持っています

<CustomAction Id="InstallSetProp" Property="CustomActionData" Value="<some other data that's formatted exactly the same> /webconftmploc=&quot;[WEBCONFIGTMPLOC]&quot;" />

ただし、この CA が呼び出されると、「Error Getting Property」というメッセージ ボックスが表示されます。これは、プロパティが正しく設定され、後でアクセスできるため、偽のメッセージです。(そして、インストールを完全に自動化する試みを台無しにする以外には何もしません)/qrこれを支援するために切り替えるブートストラップを介して.msiを実行しています。

を削除すると、メッセージ ボックス エラーは表示されません/webconftmploc=&quot;[WEBCONFIGTMPLOC]&quot;。レコード[WEBCONFIGTMPLOC]は絶対ファイル パスまたは「設定されていません」のいずれかであり、この動作が発生する特別な理由があるかどうか疑問に思っています。

ただし、もちろん、このアクションを抑制または修正するための可能な方法にもっと興味があります。

4

1 に答える 1

2

それCustomActionはプロパティを設定するだけです。エラーメッセージを表示することはできません。いずれかのプロパティが定義されていない場合、それらは単に空白に解決されます。他の何かがエラーメッセージを表示しているに違いありません。

ただし、特別な名前の を使用しているため、延期されたカスタム アクションにデータを渡そうとしているようですCustomActionData。とはいえ、あまり使い道はありませんCustomActionData。代わりに、データを渡したいのPropertyに属性を設定する必要があります。そのプロパティ値を使用するカスタム アクションが次のようなものであるとします。IdCustomAction

<CustomAction Id='MyDeferredCustomAction' Execute='deferred' ... />

送信しようとしている文字列を渡すには、次のように記述できます。

<CustomAction Id="InstallSetProp"
              Property="MyDeferredCustomAction"
              Value="<some other data that's formatted exactly the same> /webconftmploc=&quot;[WEBCONFIGTMPLOC]&quot;" />

2 番目のカスタム アクションは、遅延カスタム アクションと同じ名前のプロパティを設定していることに注意してください: MyDeferredCustomAction。は、魔法のプロパティを介してMyDeferredCustomAction値にアクセスできます。詳細については、こちらをご覧ください: http://msdn.microsoft.com/en-US/library/2w2fhwzz(v=VS.80).aspx<some other data that's formatted exactly the same> /webconftmploc="value_of_WEBCONFIGIMPLOC_goes_here"CustomActionData

于 2013-03-27T20:31:40.447 に答える