2013-06-21 79 views
3

當我點擊下一步按鈕時,如何調用自定義操作dll?目前,我在做什麼是如下:WIX自定義操作調用下一個

<CustomAction Id="TestingAction" BinaryKey="BIN_CustomAction" DllEntry="TestValue" Execute="deferred" Return="check" /> 
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="&amp;Next"></Control> 
<Custom Action="TestingAction" After="Next"></Custom> 

當我給After ="Next"這是我的下一個按鈕,我建立我的應用程序後,收到錯誤。

未解決的引用符號'WixAction:InstallUISequence/Next'in section'Product:*。

如何解決問題,任何人都可以幫助我如何在點擊下一步按鈕後調用CustomAction。

回答

7

你要做的是將延遲的自定義動作安排到某個特定的序列,並在名爲Next的自定義動作後運行它,這顯然不存在。您應該採取完全不同的方式來調用按鈕單擊的自定義操作。

按照下面的步驟:

  • 創建自定義操作。它必須是立即(execute='immediate')不應該永遠改變目標系統的狀態
  • 筆者一個Control元素 - 你想
  • 終於觸發事件的按鈕,編寫一個Publish元素的一個孩子Control,它出版的DoAction事件

下面是從維克斯源的全樣本如何在點擊一個按鈕打印EULA:

<Control Id="Print" Type="PushButton" X="88" Y="243" Width="56" Height="17" Text="!(loc.WixUIPrint)"> 
    <Publish Event="DoAction" Value="WixUIPrintEula">1</Publish> 
</Control> 

顯然,Control元素應該是Dialog元素的子元素。 而自定義動作是這樣定義的:

<CustomAction Id="WixUIPrintEula" BinaryKey="WixUIWixca" DllEntry="PrintEula" Return="ignore" Execute="immediate" /> 

希望這會有所幫助。

+0

謝謝你的幫助和有用的信息。它的工作。 – reapen