2011-07-27 24 views
1

WiXインストーラで任意のコードを実行し、その結果を可能な限り早く利用したいと考えています。WiXで任意のC#コードを実行

これをテストするには、戻り値を使用してラベルフィールドを設定しています。それは動作していないようです。私は、次のボタンのコントロール内

<Publish Event="DoAction" Value="CustomAction1">1</Publish> 

を入れたときに私はそれを実行するために取得することができますが、これはあまりにも「遅」です。私はそのコードを最初に実行したいと思います。ここで

は、私が試したものです:

<Binary Id="WixCustomActions" SourceFile="$(var.SolutionDir)$(var.CAProjectName)\bin\Release\$(var.CAProjectName).CA.dll" /> 

<CustomAction Id="CustomAction1" BinaryKey="WixCustomActions" DllEntry="CustomAction1" Execute="deferred" Return="asyncWait"/> (tried many combinations here)` 

後で.....

<InstallExecuteSequence> 
    <Custom Action="CustomAction1" After="InstallInitialize">1</Custom> 
</InstallExecuteSequence> 

紙の上で、これは動作するはずです。

私はカスタムアクション自体に問題はないことを知っています。なぜなら、次のキーに置いたときに、私は望みの結果を得るからです。

解決策は何ですか。

答えて

1

InstallExecuteSequenceテーブルには、トップレベルのINSTALLアクションが実行されたときに実行されるアクションが一覧表示されます。 InstallUISequence

+0

チップをありがとう。私はそれをInstallUISequenceに変更し、 1を使用しましたが、このエラーは "DEBUG:Error 2762:操作をスケジュールすることができません。アクションはInstallInitializeとInstallFinalizeの間でスケジュールする必要があります。 「製品:{5A997B05-4696-4C8F-BAA8-6915B8AB6FC5}」セクションの「WixAction:InstallUISequence/InstallFinalize」というシンボルへの未解決の参照「エラー\t」でコンパイルされていません。 –

+0

カスタムアクションコードが存在する場所は、InstallメソッドまたはbeforeInstallです。理由を説明してください。理由を説明してください。より良い解決策を提供できるようになります。 – hungryMind

+0

基本的には、インストーラがフィールドに値を設定したり、IPアドレスなどに基づいて決定を下すインストーラがインスタンス化されるとすぐにこのコードが実行されることが重要です。 –

0
<InstallUISequence> 
    <Custom Action="Your_Custom_Action" 
      After="CostFinalize" 
      Overridable="yes">NOT Installed</Custom> 
</InstallUISequence> 

インストールの非常に初めにこのコードの発売「Your_Custom_Action」にLaunchConditionsを使用してみてください。

関連する問題