• C# 温故知新 第三篇 C# 编程概念 之程序集


     在微软C# 官方开发指南中,介绍到在C# 开发中设计到这些 编程概念 当然包括不限于这些:

    程序集:程序集构成了 .NET 应用程序的部署、版本控制、重用、激活范围和安全权限的基本单元。 程序集是为协同工作而生成的类型和资源的集合,这些类型和资源构成了一个逻辑功能单元。 程序集采用可执行文件 (.exe) 或动态链接库文件 (.dll) 的形式,是 .NET 应用程序的构建基块 。 它们向公共语言运行时提供了注意类型实现代码所需的信息。

    从官方定义可以看出程序集是一个集合,是类型和资源的集合。

    包括两种文件类型:

    1. 采用可执行文件 (.exe)

    2. 动态链接库文件 (.dll) 

    程序集有如下属性:

    • 程序集以 .exe 或 .dll 文件的形式实现 。

    • 对于面向 .NET Framework 的库,可通过将程序集放入全局程序集缓存 (GAC),在应用程序之间共享程序集。 必须先对程序集进行强命名,然后才能将它们包含到 GAC 中。 有关详细信息,请参阅具有强名称的程序集

    • 只有在需要使用时才会将程序集加载到内存中。 如果未使用程序集,则不加载。 也就是说,使用程序集,可以在大型项目中高效管理资源。

    • 可以使用反射,以编程方式获取程序集的相关信息。 有关详细信息,请参阅反射 (C#) 或反射 (Visual Basic)

    • 可加载一个程序集,使用 .NET 和 .NET Framework 中的 MetadataLoadContext 类来检查该程序集。 MetadataLoadContext 取代了 Assembly.ReflectionOnlyLoad 方法

    创建程序集

    程序集可以为静态或动态。 静态程序集存储在磁盘上的可迁移可执行 (PE) 文件中。 静态程序集可以包括接口、类和资源(如位图、JPEG 文件和其他资源文件)。 你还可以创建动态程序集,动态程序集直接从内存运行并且在执行前不保存到磁盘上。 你可以在执行动态程序集后将它们保存在磁盘上。

    有几种创建程序集的方法。 你可以使用可创建 .dll 或 .exe 文件的开发工具,例如 Visual Studio 。 可以使用 Windows SDK 中的工具创建具有从其他开发环境中创建的模块的程序集。 还可以使用公共语言运行时 API(例如 System.Reflection.Emit)来创建动态程序集。

    可以采用以下方法编译程序集:在 Visual Studio 中生成程序集、使用 .NET Core 命令行接口工具生成程序集,或使用命令行编译器生成 .NET Framework 程序集。 要详细了解如何使用 .NET CLI 生成程序集,请参阅 .NET CLI 概述

     备注

    若要在 Visual Studio 中生成程序集,请在“生成”菜单上选择“生成” 。

    程序集清单

    每个程序集都有一个程序集清单文件。 与目录类似,程序集清单包含以下内容:

    • 程序集的标识(名称和版本)。

    • 文件表,描述构成程序集的其他所有文件(例如,.exe 或 .dll 文件所依赖的你创建的其他程序集、位图文件或自述文件) 。

    • 程序集引用列表,即所有外部依赖项的列表,如 .dll 或其他文件 。 程序集既可以引用全局对象,也可以引用私有对象。 全局对象可用于所有其他应用程序。 在 .NET Core 中,全局对象与特定的 .NET Core 运行时结合使用。 在 .NET Framework 中,全局对象位于全局程序集缓存 (GAC) 中。 System.IO.dll 是 GAC 中程序集的一个示例。 私有对象必须位于级别不高于应用安装目录的目录中。

    由于程序集包含内容、版本控制和依赖项的相关信息,因此使用它们的应用程序不依赖 Windows 系统上的注册表等外部源也能正常运行。 程序集减少了 .dll 冲突,让应用程序变得更可靠、更易于部署。 在许多情况下,只需将 .NET 应用程序的文件复制到目标计算机,即可进行安装。 有关详细信息,请参阅程序集清单

    添加对程序集的引用

    必须添加对应用程序中的程序集的引用,才能使用该程序集。 引用程序集后,应用程序可以使用其名称空间的所有可访问类型、属性、方法和其他成员,就好像它们的代码是源文件的一部分一样。

    这里介绍下nuget ,在visual studio 

    打开nuget 包管理器

     选择需要安装的包

    选择需要引入的项目

    选择版本点击安装即可

     

  • 相关阅读:
    几个不错的学习网址不断更新中
    重构之美-跨越Web标准,触碰语义网[分离:通用也许是个美丽陷阱]
    在APP中分享小程序和在企微中分享小程序到对话聊天框需要做哪些配置
    第三方平台授权小程序遇到的问题
    第三方授权小程序,将小程序代码推到第三方平台流程以及需要配置哪些东西
    html5专题页
    lua字符串格式化多参用法
    lua三目运算符逻辑盲点
    部分数学符号
    常用软件链接
  • 原文地址:https://www.cnblogs.com/motion/p/15659809.html
Copyright © 2020-2023  润新知