0
我使用VS2010和WIX 3.5。WIX c#CustomAction,我做错了什么?
1)我创建了WIX Setup Project。
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" />
这是行不通的。我究竟做错了什么?请帮帮我。
对MessageBox.Show()的调用将工作,如果他引用名称空间System.Windows.Forms并且还添加了指令'Using System.Windows.Forms' – Mario 2010-07-07 21:07:43
我给它一个测试,它确实看起来似乎上班。我不相信它是一个好主意,但是它能完成任务。 :) – 2010-07-07 22:32:43
你应该使用session.Message来显示一条消息,否则你不能保证消息框会在最前面,而不需要更多的编码 – 2011-06-21 04:19:30