zoukankan      html  css  js  c++  java
  • 将 DLL 安装到全局程序集缓存(GAC)

    将 DLL 安装到全局程序集缓存(GAC) 

    引言

    本文提供如何将 DLL 安装到全局程序集缓存(GAC)的简单示例。

    你可能想这样做的原因有以下几个:

    程序集的共享和版本控制

    该组件可用于由一个以上的应用程序,可能需要不止一个版本的程序集。多个版本可以同时存在于 GAC 中。

    安全性

    GAC 放置在系统根中应用了多数的沙箱外安全特性。您不需要在多处放置它。

    程序集查找

    在查找本地文件夹之后在 GAC 中查找代码库信息。

     

    开始

    创建一个强名称密钥对:

    首先,我们需要创建一个强名称密钥文件。 这将使用的命令格式为:sn –k <文件名与位置>。 下面是一个示例。 创建了一个包括公钥与私钥的密钥对。

    使用 Visual Studio 对程序集进行签名

    给程序集签名非常简单 - 你也可能使用较麻烦的程序集链接器,但那完全没必要。右键点击解决方案资源管理器中的项目节点,选择属性。在“签名”(Signing)的选项卡中勾选“为程序集签名”(Sign the assembly)。在下面的下面列表中选择您的密钥文件。在这个示例中,我已经将密钥文件复制到了与 ReportingUtilitites DLL 生成相同的 bindebug 文件夹中。

    安装到 GAC

    现在我们有了一个已签名可安装到 GAC 的程序集。 运行 Visual Studio 命令提示 (在 visual studio tools 中) 并写下面的指令: gacutil –I <程序集名称 >。 在本示例中我将当前命令提示文件夹定位到了 DLL 所在文件夹 - 您可以也这么做或是在程序集名称里输入完整路径。

    在 MSI 中安装程序集到 GAC

    在产品环境中,现实情况是,你没有安装 Visual Studio 环境。

    不用担心。 安装一个 DLL 到 GAC 仍然很简单 - 你只需要创建一个部署项目。

    在 Visual Studio 中添加一个新的部署项目到您的解决方案中。

    • 选择一个标准安装程序 - 无向导。
    • 右键点击项目节点,选择视图,文件系统。
    • 右键点击“目标计算机上的文件系统”(File System on target machine) 选择 “Global Assembly Cache 文件夹”(GAC)

    • 右键点击生成的 GAC 文件夹选择“项目输出”(Project Output)中的 Dll 项目下的主输出(primary output)。 确保您在下拉列表中选择了正确的项目!

     

    该项目也将增加.NET框架的启动条件。 确保该版本设置的版本将是在目标机器上,因为它会默认为您的开发机器上的最新版本 (这可能是更高的)。

    更改版本:

    • 右键点击项目节点选择视图中的“启动条件”(launch conditions)
    • 在启动条件中选择 .Net Framework
    • 选择属性面板。您可能需要重新选择启动条件,以突出显示正确的属性。它应该如下:

    现在你可以生成你的项目并复制文件到您需要安装 DLL 的环境中了。

  • 相关阅读:
    推荐大家看 《亵渎》
    vue 过滤器filters的使用以及常见报错小坑(Failed to resolve filter)
    vue 与原生app的对接交互(混合开发)
    vue 3.0使用 BUG解决
    202020211 20209313 《Linux内核原理与分析》第一周作业
    2第一周部分笔记
    Cartographer系列之二——hokuyo激光雷达跑cartographer
    ROS系列之初识gmapping
    Cartographer系列之一——初体验
    SLAM学习资料整理
  • 原文地址:https://www.cnblogs.com/guanshan/p/guan2020-6-10_002.html
Copyright © 2011-2022 走看看