WIX c#CustomAction,我做错了什么?

时间:2010-06-29 21:23:03

标签: c# wix custom-action wix3.5 dtf

我正在使用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 个答案:

答案 0 :(得分:1)

您还需要安排自定义操作才能运行

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

此外,您必须意识到在MSI沙箱中运行会限制很多事情。我不相信你对MessageBox.Show的调用会起作用。您将不得不依赖会话日志记录。