WiX / MSI:使用MS Intune

时间:2017-07-05 13:55:32

标签: wix windows-installer heat intune

我使用WiX工具集(3.10)在64b机器上开发了32b MSI安装程序。 它已在32b和64b平台上使用不同的Windows(7,8.1,10)进行了测试,并且没有任何问题。

当我尝试通过 Microsoft Intune 安装MSI时,问题就出现了。 (适用于大规模部署的其他工具) 执行全新安装时,系统会提示用户插入MSI文件(选择后,安装顺利进行,但这不是大规模部署的目的)。

我发现当我从使用加热工具收集的MSI文件中删除时,问题并未发生。 该命令是(通过Visual Studio传递):

"$(WIX)\bin\heat.exe" dir "C:\SOURCE_PATH" -ke -scom -frag -srd -ag 
  -var var.Resources -cg ResourcesGroupId -dr INSTALLDIR_RES 
  -out "$(ProjectDir)Source\Fragments\HarvestedResources.wxs"

此组件组将添加到包含所有其他组件的主要功能中。

目标目录创建为:

<DirectoryRef Id='INSTALLDIR_RES'>
  <Component Id='cmp_ResDiR' Guid='{SOME_GUID}'>
    <CreateFolder />
    <RemoveFolder Id='INSTALLDIR_RES' On='uninstall' />
  </Component>
</DirectoryRef>

INSTALLDIR_RES是位于INSTALLDIR下的兄弟路径。 日志显示ComponentRegistry已完成退出代码1(成功)。

安装范围是每台计算机,已启用提升安装。安装期间使用的所有属性都标记为:

secure="yes" admin="yes"

AdminProperties SecureCustomProperties 下可见(通过 Orca 检查)。但是,我不使用任何 CustomAction 来部署此资源。

Intune 如何影响我的MSI?我错过了什么?

1 个答案:

答案 0 :(得分:1)

该问题仅与MS Intune部分相关,并且绝对与heat.exe和收获文件无关。 原来有两个问题:

  1. 使用MS Intune部署MSI,但未向用户提供原始MSI。在安装过程中,MSI已复制到临时目录,并在安装应用程序后删除。没关系,虽然在自我修复的情况下访问原始MSI会有所帮助,这会导致第二个问题:
  2. 在某些机器上,在初始运行期间,MSI正在启动自我修复程序。由于原始MSI在硬盘上不可用,因此提示用户手动选择MSI,如第一篇文章中所述。感谢great description of self-healing issues in MSI by Stein Åsmul我能够检测到根本原因(在用户特定路径中使用regEntry通告主要可执行文件的快捷方式)并修复它。
  3. 总结:MS Intune不会影响部署heat.exe收集的文件。