如何在没有 ICE 代码的情况下抑制 WiX 警告?

问题描述

我正在创建一个安装程序,需要在相同的“新安装”配置中多次运行。 为此,设置了以下抑制:

<InstallExecuteSequence>
  <RegisterProduct Suppress="yes" />
  <PublishFeatures Suppress="yes" />
  <PublishProduct Suppress="yes" />
  <RegisterUser Suppress="yes" />
</InstallExecuteSequence>

然而,这些会抛出以下类型的特定警告:

The action 'RegisterProduct' in the InstallExecuteSequence table is being suppressed.   

由于我们的政策,“已确认”警告不会出现在我们的构建结果中,因此需要完全禁止它们。

在这种情况下,使用 <SuppressspecificWarnings><SuppressICEs> 可以轻松抑制带有 ICE 代码的警告。

<SuppressAllWarnings> 似乎也不是一个选项,因为安装程序生成的其他警告仍然必须被捕获。

WiX 是否提供封装以忽略组内的警告?

有没有办法至少捕获这些特定警告并抑制它们?

提前致谢。

解决方法

错误和警告来自两个地方:构建和验证。 ICEXX 是验证,在使用 Votive/Visual Studio 时可以在工具设置中控制。其他警告是构建警告,在“构建”选项卡上进行控制。 WiX 允许您将警告级别设置为无,但这会过滤所有警告。 Visual Studio 允许您抑制特定警告,但 WiX 似乎从未给出警告单独的代码,因此不可用。

就我个人而言,禁用或忽略任何一种类型的所有警告都会让我感到很自在。我只关注错误。这是基于 20 多年的 Windows Installer 经验。