WIX c # CustomAction, что я делаю не так? - PullRequest
0 голосов
/ 30 июня 2010

Я использую VS2010 и WIX 3.5.

1) Я создал проект установки WIX.

2) Затем я добавил в решение C # проект настраиваемого действия и назвал его 'CustomActions'

 namespace CustomActions
 {
   public static class CustomActions
   {
     [CustomAction]
     public static ActionResult CustomAction1(Session session)
     {
         Debugger.Break();
         MessageBox.Show("It works");
         session.Log("Begin CustomAction1");
         return ActionResult.Success;
     }
   }
 }

3) Затем скомпилировал проект CustomActions и добавил ссылку на него из своего проекта установки.

4) И, наконец, поместите в файл .wxs:

 <Binary Id="CustomActions"  SourceFile="$(var.CustomActions.TargetDir)$(var.CustomActions.TargetName).CA.dll"/>

 <CustomAction Id="CustomAction1" BinaryKey="CustomActions" DllEntry="CustomAction1" Execute="immediate" />

Это не работает.Что я делаю неправильно?Пожалуйста, помогите мне.

1 Ответ

1 голос
/ 07 июля 2010

Вам также необходимо запланировать выполнение настраиваемого действия

   <InstallUISequence>
      <Custom Action="CustomAction1" After="AppSearch"/>
   </InstallUISequence>

Также вы должны знать, что работа в изолированной программной среде MSI ограничивает многое. Я не верю, что ваш звонок в MessageBox.Show будет работать. Вместо этого вам придется полагаться на ведение журнала сеанса.

...