【问题标题】:InstallShield add custom action to check for anti-virusInstallShield 添加自定义操作以检查防病毒
【发布时间】:2012-11-13 03:36:18
【问题描述】:

我是 InstallShield 的初学者(从某种意义上说,这是我第一次使用它!)。

我将一些代码打包到 .net DLL 中,以检查是否存在防病毒软件。我尝试创建的安装程序必须检查防病毒(通过使用我的 DLL 调用自定义操作?),如果没有找到则取消安装。

我看到它的工作方式是,用户会看到一个信息性对话框(“即将检查防病毒”),用户会按“下一步”它会调用自定义操作,然后显示成功带有“下一步”按钮的屏幕,或带有“完成”按钮的故障屏幕。

InstallShield 可以做到这一点吗?有什么好的教程可以做这种事情吗?

【问题讨论】:

  • 你为什么要这样做?用户可以免费使用或不使用防病毒软件。如果应用程序不允许我安装它,我会非常沮丧,因为我还没有防病毒软件。我以后几乎不会再使用这样的应用程序,也不会向任何人推荐它。
  • 这是我们拥有的公司的业务应用程序,我们为其提供支持。我们正在执行反病毒。不深究其背后的原因,但防病毒是必须的:)

标签: installation installshield


【解决方案1】:

您真的需要自定义操作吗?您对要寻找的产品和版本有更详细的要求吗?

InstallShield / Windows Installer 有一个内置的搜索模式,可以查找注册表项、文件等。

如果您确实需要自定义操作,您预计执行需要多长时间?如果只有几秒钟,只需安排它在 AppSearch 之后运行。你不需要用户界面来说“现在做废话”,就去做吧。

由于您想在 .NET 中执行此操作,您需要查看 Windows Installer XML (WiX) 部署工具基础 (DTF)。您可以使用它来创作/编译 InstallShield 然后可以使用的自定义操作 DLL。通常,自定义操作应该进行搜索,然后根据其结果设置属性。然后使用该属性来评估您尝试实施的任何业务规则。

【讨论】:

  • 感谢您的回复。我只是在寻找任何防病毒软件的存在,而不是特定的防病毒软件。我正在使用 WMI 来获取此信息并编写了 C# 代码来获取它。我的要求是检查它,如果没有检测到并通知用户并停止安装。你有什么建议?
  • 我的建议是一样的。将代码放入 AppSearch 和 LaunchConditions 之间安排的 C# DTF 自定义操作中。让 C# 代码查询 wmi 并根据结果设置属性。然后使用启动条件根据属性阻止安装。
  • 好的,谢谢,所有这些都是有道理的,我现在会做一些谷歌搜索,看看我是如何做到这一点的。感谢您的帮助。
  • 一个问题是,在取消之前需要警告用户没有安装防病毒软件,你的方法会这样做吗?
猜你喜欢
  • 1970-01-01
  • 2010-11-26
  • 2011-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-13
  • 1970-01-01
  • 2011-03-15
相关资源
最近更新 更多