【问题标题】:What setup can trigger Windows Installer to repair the program when a file is deleted?当文件被删除时,什么设置可以触发 Windows Installer 修复程序?
【发布时间】:2014-10-22 12:33:46
【问题描述】:

我得到了一个带有 data 文件的 dll 文件。每当我删除那个 data 文件时,Windows Installer 每次都会在我的程序加载阶段弹出。我尝试使用 ILDASM 来查看程序集。但我无法通过搜索找到 data 文件的名称。

dll 被混淆了。这可能是原因吗?谢谢!

编辑: 它是一个数据文件(而不是资源文件,更准确地说),dll可能使用或可能不使用取决于条件。就我而言,我们不再需要该数据文件,而是希望将 dll 保留用于其他部分功能。

【问题讨论】:

  • 我不明白你的问题。为什么要删除资源文件?你想完成什么?
  • @JeroenMostert 这是一个数据文件(见上面的编辑)
  • @PatrickHofman 我确定它是 Windows Installer,因为它正在搜索我的程序的 msi。
  • 如果在您删除该文件并运行该程序时弹出 Windows Installer,则可能正在调用某种修复逻辑。尝试从文件中删除权限,以防止在未物理删除的情况下对其进行访问。
  • 这可能是此处所述的广告快捷方式 - social.msdn.microsoft.com/Forums/windows/en-US/…

标签: .net deployment windows-installer


【解决方案1】:

MSI / Windows Installer 将尝试将安装的文件保留在磁盘上。此功能称为弹性

详细解释请看这篇文章:How can I determine what causes repeated Windows Installer self-repair?

还有一个similar answer on serverfault.com 可能更容易访问。

【讨论】:

    【解决方案2】:

    尝试通过任何方式进行修复通常是没有意义的,除了记录在案的方法来禁用它的特定文件(组件),即在安装项目中将组件 guid 设置为空(null),组件表文档在这里:

    http://msdn.microsoft.com/en-us/library/aa368007(v=vs.85).aspx

    参见 ComponentId 列。我假设您可以使用 InstallShield 进行设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-24
      • 2012-06-04
      • 2013-03-24
      • 1970-01-01
      • 2013-10-17
      • 2013-02-18
      • 2019-02-07
      相关资源
      最近更新 更多