installshield打包问题。在卸载的时候,我想删掉某个文件夹,我看网上的资料是写在OnUnInstalled里面,问题是

afantict 2008-11-10 04:18:09
问题是我在setup.rul里面加上了下面的代码,可是在通过控制面板卸载的时候,好像没有运行这段代码。
应该怎么加这段代码才能达到我的目的?

export prototype OnUnInstalled(HWND);
function OnUnInstalled(hMSI)

begin
if (ExistsDir (INSTALLDIR)) then
if (DeleteDir (INSTALLDIR, ALLCONTENTS) != 0) then
MessageBox ("Unable to delete directory:" + INSTALLDIR, SEVERE);
endif;
endif;
end;
...全文
445 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaomatian 2008-11-11
  • 打赏
  • 举报
回复
不用installshield,那好像要买的吧。

我都是用NSIS,开源的,打包代码直接写代码,可控性比较好。
afantict 2008-11-11
  • 打赏
  • 举报
回复
TO:acqy

有这方面的教材吗?
acqy 2008-11-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 afantict 的回复:]
TO:acqy

有这方面的教材吗?
[/Quote]

我也没有找到非常合理的教程,这只是我自己摸索出来的。如果你英文比较好,建议你上英文google搜索一下,或者到http://community.acresso.com搜索一下,应该相关的内容还是比较多的。
acqy 2008-11-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xiaomatian 的回复:]
不用installshield,那好像要买的吧。

我都是用NSIS,开源的,打包代码直接写代码,可控性比较好。
[/Quote]

由于公司要求要IS,所以公司就有license,我也是最近才研究IS,IS的可控性确实没有其它的强大啊。比较难学。
hanghangz 2008-11-10
  • 打赏
  • 举报
回复
http://hi.baidu.com/godgod/blog/item/ccce4ced3c3167d2b31cb1a7.html

有你需要的
acqy 2008-11-10
  • 打赏
  • 举报
回复
上面的说错了一个地方,应该是:然后设置“Install Execute Condition”为“REMOVE="ALL"”
acqy 2008-11-10
  • 打赏
  • 举报
回复
你现在仅仅是创建了一个脚本,还需要定义Custom Action

1、到Custom Actions and Sequences下,使用Custom Action Wizard新建一个Custom Action,随便起个名字,然后选择“InstallScript”
2、点击“下一步”以后,选择你所定义的OnUninstalled方法
3、也是最重要一步,在“Insert into sequence”页面中,选择“Install Execute Sequence”为“After InstallFinalize”,然后设置“Install Execute Condition”为“Not Installed”

注意:如果通过上面的方法还不成功,你试着调整这个Custom Action的Install Execute Sequence属性(也就是什么时候执行这个CustomAction),然后再试。
另外还有一点,DeleteDir函数是否能够连带子目录以及其中的文件一起删除,还需要你自己仔细参考这个函数的说明。否则也无法删除目录。
billlyh 2008-11-10
  • 打赏
  • 举报
回复
经常打包,没遇见这种问题,学习,帮你顶起来,只要你记得给我分,

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧