2011-09-14 12 views
1

誰でもこのオブジェクトがまだ利用可能な時点を知っていますか?私もWixセッションオブジェクト

<CustomAction Id="TestDatabaseConnection.SetProperties" Property="TestDatabaseConnection" Value="CONNECTIONPROVIDER=[CONNECTIONPROVIDERNAME];PRIMARY_SERVER=[SERVER];PRIMARY_USERID=[USERID];PRIMARY_PASSWORD=[PASSWORD];"/> 
<CustomAction Id="TestDatabaseConnection" BinaryKey="WixCustomActions" DllEntry="TestDatabaseConnection"/> 

を定義している。しかし、私は、それはときにダウンカスタムアクションでエラーを取得維持、および

  <Control Id="Test_Button" Type="PushButton" X="100" Y="100" Width="56" Height="17" Text="Test"> 
      <Publish Event="DoAction" Value="TestDatabaseConnection.SetProperties">1</Publish> 
      <Publish Event="DoAction" Value="TestDatabaseConnection">1</Publish> 
      </Control> 

:私はfollwsと呼ばれるカスタムアクションを作成しようとしています

私は試して、設定されたパラメータを取得します。

I.e.それは実行サイクルの終わりに置くとき、このコードは動作しますが、今、私はボタンが押されたときにそれを呼びたい

Action ended 13:11:46: TestDatabaseConnection. Return value 3. 
DEBUG: Error 2896: Executing action TestDatabaseConnection failed. 
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2896. The arguments are: TestDatabaseConnection, , 

を吹く

server = session.CustomActionData["PRIMARY_SERVER"]; 

ブーム。

手がかりはありますか?

+0

私は、次を発見しました。即時のアクション(すべてのUIアクション は即時です)はプロパティにフルアクセスできますので、これは不要です と未使用。 ' CustomActionDataを削除しても落ちないと確認しましたが、[]でセッションに直接アクセスする前に経験したことがある方が良い/静かに処理され、session.logを使用できないので空の文字列を取得しますそれはデバッグするのは非常に難しいです! 結論;それは動作しませんが、もはや転倒しません。 –

+0

OKプロパティを使用して渡すことを中止し、実際の変数を参照しています。私は一貫性のためにプロパティを使用しようとしていました。 –

答えて

3

遅延CAのCustomActionDataクラスを使用して、プロパティを直列化および逆シリアル化するだけです。 Caを動かす(DoActionコントロールイベントから呼び出されたときのように)これを必要とせず、動作しません。 http://goo.gl/gc9Az 「だけ延期、ロールバック、およびコミットアクションがCustomActionDataは、整合性の値から を設定し使用します。

+0

要約すると、遅延のためのプッシュボタンのような '即時'アクションにはSetPropertiesを使用できません。 –

+2

まだ読んでいない場合は、これを読んでください:http://www.installsite.org/pages/en/isnews/200108/index.htm –

関連する問題