【问题标题】:Installing a .NET assembly into GAC using MSI使用 MSI 将 .NET 程序集安装到 GAC
【发布时间】:2014-11-06 05:01:30
【问题描述】:

我希望使用安装项目MSI.NET assembly 安装到GAC 中。虽然我对如何去做有一个大致的想法,但assembly 是否需要在MSI 安装它之前进行签名,如果是这样,在生产环境中,assembly 应该如何签名?

即我可以在Visual Studio /InstallShield 上设置什么来自动签署程序集,然后通过目标机器上的MSI GAC 安装它?

另外,如果我卸载应用程序,在GAC, 中加载的程序集也会被删除吗?

请帮帮我。谢谢。

【问题讨论】:

    标签: c# .net visual-studio installshield gac


    【解决方案1】:

    将程序集发布到 GAC 要求程序集具有 strong name。这是一种不使用传统的基于证书颁发机构的数字证书的签名形式。至少,InstallShield 没有特别支持将强名称应用于程序集,但 Visual Studio 提供了从项目中执行此操作的选项。

    一旦您的程序集有了一个强名称,就可以将它安装到 GAC。一旦正确配置了 MSI(假设您使用的是 MSI),它将在卸载时将其删除(或至少减少引用计数)。

    【讨论】:

    • 那么,在生产环境中,我该如何集成呢?即,创建一个强命名密钥,然后将其应用于文件?关键是这些文件也是使用证书在外部和内部签名的,是否会有任何冲突?另外,该过程如何实现自动化?
    • @user1173240 在应用验证码签名之前,您必须对程序集进行强命名。这两种数字签名accomplish two different goals。无论如何,只需阅读链接的 MSDN 文章,并在 how to sign an assembly with a strong name 上实现它链接的文章。如果您还需要验证码签名,InstallShield 可以应用这些(发布视图 > 签名选项卡)。或者提出一个新问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多