您的位置:首页 > 编程语言 > C#

还是关于安装完毕后启动程序的问题

2010-10-20 20:54 381 查看
之前提出过两个类似的问题,都没有得到满意的答复根据微软的帮助,制作了继承与Installer类的一个自动运行的类

现在的问题是:在弹出结束安装窗口之前的确能够起到M.exe,但是,在启动M之后安装结束窗口仍然存在,
也就是说安装程序和M同时存在了,
在M打开后,还需手动去关闭安装程序的最后一个结束窗口。
有什么办法可以在安装程序的最后一个窗口关闭之后再打开M?
里启动,但是好像根本没反应,似乎没有执行到这里一样,
不能让M去关掉安装程序最后一个窗口么?这样做可能是可以的,但是感觉有点“有始无终”,好像安装还没完成一样,

有时间的话研究下wix下吧,解决这个问题很简单,添加一个Custom Action,几行xml标记就可以,不用写任何c#代码;最近我刚好把相关的资料整理了一下,不过还没写完,有兴趣可以参考

Installer类编译后,需要在安装程序的自定义操作中的安装选项中添加进来。这样Installer中的事件才会触发。另外即使在OnAfterInstall事件中写启动程序,这个时候安装程序最后一步退出仍然没有执行,界面还是存在的。解决方法未知。期待做过的大虾提示。。。在创建的类中加入重载代码

然后, 在你建立的打包项目中,在custom action(自定义操作)中的安装上点右键新建,选择你的启动程序,应该就可以了

放心吧,wix是完全免费的,它是微软根据windows installer使用c#开发的一个打包工具,完全兼容vs

这段代码的作用就是把安装程序结束界面置到(被调用程序的)前面感觉自然一点,
但是还是有些怪怪的,能否做到: 先关闭安装程序-->再启动被调用程序

windows installer本身就带有启动应用程序的Action,完全不用再写Action来实现的,但是vs自带的打包应该很难实现这种效果;如果自己写Action也不容易实现,因为所有的Action(包括自定义的Action)都包含在InstallExecuteSequence或者InstallUISequence序列中,这些序列都在ExitDialog(结束界面)调用之前就执行完了,所以要在最后执行程序,我们必须把Action绑定到完成按钮的事件上,使用wix或者直接编辑msi可以达到这种效果,下面是直接编辑msi实现方法:首先下载orca,它是msi数据库编辑工具。

使用orca打开msi文件,在Tables列表中找到CustomAction表,添加新行

Source字段值就是你执行文件的名称,它是File表的外键,必须跟File表中File列的值对应
保存修改后的msi文件,就大功告成了,此方式已测试,绝对可行
有点大意了,之前回复中我用的还是wix的安装界面,发现vs打包的程序最后的界面不是ExitDialog,而是FinishedForm,因此需要上面ControlEvent表添加的记录修改

你就不能学下其他软件么
弄一个checkbox,Text就是 安装结束启动程序
打钩的话 安装完毕点关闭 就启动程序啊 这样不就可以了

来源:足球直播
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐