我正在使用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" />
这不起作用。我究竟做错了什么?请帮帮我。
答案 0 :(得分:1)
您还需要安排自定义操作才能运行
<InstallUISequence>
<Custom Action="CustomAction1" After="AppSearch"/>
</InstallUISequence>
此外,您必须意识到在MSI沙箱中运行会限制很多事情。我不相信你对MessageBox.Show的调用会起作用。您将不得不依赖会话日志记录。