我有一個安裝程序,它具有包含按鈕的自定義屏幕。當按下該按鈕時,必須運行自定義操作來驗證一些事情,並返回成功或錯誤。Wix C#自定義操作根本不執行
我有我的按鈕定義如下:
<Control Type="PushButton" Id="DatabaseVerifyConnectionButton" X="118" Y="150" Width="116" Height="17" Text="Verify Connection" Property="DATABASEVERIFYCONNECTIONBUTTONPROPERTY" Default="yes">
<Publish Event="DoAction" Value="VerifyDatabaseConnection">1</Publish>
<Publish Event="SpawnDialog" Value="VerifySuccessDlg">VERIFIEDCONNECTION = "1"</Publish>
<Publish Event="SpawnDialog" Value="VerifyFailedDlg">VERIFIEDCONNECTION = "0"</Publish>
</Control>
我的自定義操作XML
<CustomAction Id="VerifyDatabaseConnectionCA"
BinaryKey="DatabaseCustomAction.CA.dll"
DllEntry="VerifyDatabaseConnection2"
Execute="immediate"
Return="check"/>
<CustomAction Id='VerifyDatabaseConnection'
Property='VerifyDatabaseConnectionCA'
Execute='immediate'
Value="ServerIP=[DATABASESERVERIPTEXTBOXPROPERTY];Username=[DATABASEUSERNAMETEXTBOXPROPERTY];Password=[DATABASEPASSWORDTEXTBOXPROPERTY]"/>
我的自定義操作使用C#代碼:
[CustomAction]
public static ActionResult VerifyDatabaseConnection(Session session)
{
System.Diagnostics.Process.Start(@"C:\Windows\System32\calc.exe");
return ActionResult.Failure;
}
該日誌顯示以下ing:
MSI (c) (58:B4) [16:39:45:183]: Doing action: VerifyDatabaseConnection
Action 16:39:45: VerifyDatabaseConnection.
Action start 16:39:45: VerifyDatabaseConnection.
Action ended 16:39:45: VerifyDatabaseConnection. Return value 1.
我試了很多東西。附加一個調試器,不起作用。迴歸成功或失敗似乎並不重要。哎呀,它甚至沒有啓動計算器,當你點擊按鈕。我確實注意到改變定製行動的切入點似乎並不重要。
我也讀了一些關於MakeSfxCA.exe的內容,但是我無法在我的生活中找到如何使它正常工作的任何地方。但如果您將自定義操作項目添加爲自定義操作項目,我也讀過Visual Studio應該爲您做的工作。
我在這裏完全損失。爲什麼這不工作?它在任何地方都顯示成功,但它根本不執行任何代碼。
對於很好解釋的問題+1 +1 – Isaiah4110