ISICE07:组件 ... 安装到全局程序集缓存。这需要放弃

ISICE07: Component ... is installed to the Global Assembly Cache. This requires a waiver

将程序集安装到 GAC 似乎非常难以正确完成。 SO 上有许多页面描述了如何执行此操作。我选择了一个说要将文件作为组件添加到 InstallShield 中的 MSI 安装程序并将目标设置为 GlobalAssemblyCache。当我这样做时,我收到一个错误,似乎没有其他人遇到过,所以可能是 InstallShield 2015 的新错误:

ISDEV : error ISICE07: Component TestLib.Primary_output is installed to the Global Assembly Cache. This requires a waiver for Windows 7 Logo Certification. Component Directory_ TestLib.Primary_output

必须有一种正确的方法将程序集安装到 GAC 中。它不适用于 GacUtil。这仅用于开发目的。它不是直接复制到 windows\assembly,因为它可以根据 .NET 的版本和可能的其他原因移动。显然不是通过在 InstallShield 中将安装目标设置为 GlobalAssemblyCache。

编辑: 我设法禁用了 InstallShield 中的验证,这影响了在 Visual Studio 中创建的安装项目。现在我可以在 GAC 中安装和查看程序集。但我不认为这是对这个验证错误的完整回答。如果这不是将程序集安装到 GAC 的正确方法,是什么

现代安装程序比我意识到的更能够让 运行 GAC 之外的东西。我也忘记了可能也涉及的免注册 COM 激活。我想我现在的答案是避开 GAC。我试图安装到 GAC 中的组件在 GAC 之外工作得很好。 MMC 管理单元依赖于它们,但 InstallShield/MSI 似乎神奇地弄清楚了如何安装所有组件,因此它们可以在不使用 GAC 的情况下工作。