У меня есть программа установки, у которой есть собственный экран, содержащий кнопку. Когда эта кнопка нажата, должно выполняться пользовательское действие, которое проверяет несколько вещей и возвращает успех или ошибку.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>
Мой Custom Action 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]"/>
Мой Custom Action C# код:
[CustomAction]
public static ActionResult VerifyDatabaseConnection(Session session)
{
System.Diagnostics.Process.Start(@"C:\Windows\System32\calc.exe");
return ActionResult.Failure;
}
Журналы показывают следовать :
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 должен сделать это для вас, если вы добавили проект Custom Action в качестве проекта пользовательских действий, который я сделал.
У меня здесь полная потеря. Почему это не будет работать? Он показывает успех везде, но он просто не выполняет никакого кода вообще.
+1 для хорошо объясненного вопроса – Isaiah4110