Вопрос

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

1) Я создал проект WIX Setup.

2) Затем я добавил в решение C # Custom Action Project и назвал его «Customations»

 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) Затем я составил настройки проекта и добавил ссылку на него из моего проекта установки.

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

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

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

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

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top