gpt4 book ai didi

.net - 了解 dll 以及它们在 Visual Studio 中的工作方式

转载 作者:行者123 更新时间:2023-12-04 13:25:34 24 4
gpt4 key购买 nike

有没有人有关于 dll 的良好资源以及它们是如何在 Visual Studio 中使用/生成的?我比较模糊的几个问题具体是:

  • 刷新文件的工作原理
  • dll版本号如何生成
  • 按项目添加引用与浏览特定 dll
  • 之间的区别

    也欢迎任何其他提示。

    最佳答案

    .NET DLL

    .NET DLL 的通用术语是程序集。它们是一个单一的原子部署单元,由一个或多个 CLR“模块”组成(对于大多数开发人员来说,通常只有一个,除非他们正在组合来自两种或多种语言的编译器输出)。程序集包含 CIL 代码和 CLR 元数据,例如程序集 list 。

    .刷新文件

    .refresh 文件是简单的文本文件,它告诉 VS 在哪里检查引用的 dll 的新版本。它们用于基于文件的 Web 项目,其中没有项目文件来存储此信息。

    版本号

    .NET 程序集版本号由程序集范围属性 AssemblyVersion 生成,该属性通常位于名为“AssemblyInfo.cs”的源文件中(从 VS2005 开始,位于名为“Properties”的项目文件夹下)。版本号由 major.minor.build.revision 组成,例如 -

    [组装:组装版本(“1.0.0.0”)]

    AssemblyVersion 用作程序集标识的一部分(即以其强名称),并在绑定(bind)过程和版本策略决策期间发挥重要作用。

    例如,如果我在 GAC 中有两个同名的程序集,则 AssemblyVersion 属性将区分它们以加载特定版本的程序集。

    AssemblyVersion 编号可以手动固定和递增,或者您可以通过指定允许编译器为您生成构建和修订编号:

    [assembly: AssemblyVersion("1.0. * ")] - 生成构建和修订号
    [assembly: AssemblyVersion("1.0.0. * ")] - 生成修订号

    如果 AssemblyVersion 属性不存在,则版本号默认为“0.0.0.0”。

    AssemblyVersion 属性的值成为程序集 list 的一部分,而 AssemblyFileVersion 属性值不会。

    AssemblyFileVersion 属性用于将 Win32 文件版本嵌入到 DLL 中。如果不存在,则使用 AssemblyVersion。它与 .NET 程序集加载器/解析器如何选择要加载的程序集版本无关。

    项目引用与 DLL 浏览

    如果您要添加项目引用,则意味着引用的项目将成为您的解决方案的一部分。通过能够直接进入您引用的项目代码,这使得调试变得更简单。如果您只添加一个 dll 引用,那么您将无法享受项目作为解决方案的一部分并且能够进入解决方案中的代码的好处。

    关于.net - 了解 dll 以及它们在 Visual Studio 中的工作方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/169287/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com