C#学习第24天:程序集和部署

发布于:2025-05-22 ⋅ 阅读:(17) ⋅ 点赞:(0)

程序集知识点


1.程序集的基本概念

  • 程序集是部署和版本控制的最小单位。
  • 它可以是可执行文件(.exe)或动态链接库(.dll)。
  • 包含元数据和清单(Manifest),描述程序集的内容和依赖关系。

2.程序集清单

  • 包含程序集的名称、版本、文化和公钥。
  • 列出程序集所包含的所有模块和类型。
  • 描述程序集对其他程序集的依赖。

3.强名称程序集

  • 使用强名称为程序集签名以确保其唯一性和安全性。
  • 包括程序集的简单名称、版本号、文化信息和公钥。
  • 使用 SN.exe 工具生成密钥对。

4.程序集版本控制

  • 支持主版本、次版本、内部版本和修订版本。
  • 使用 [assembly: AssemblyVersion("1.0.0.0")] 属性指定版本。
  • 支持绑定重定向以解决版本冲突。

5.程序集的类型

  • 私有程序集:存放在应用程序目录,供单个应用程序使用。
  • 共享程序集:存放在全局程序集缓存(GAC),可供多个应用程序共享。

6.程序集的部署

  • 私有程序集直接复制到应用程序目录。
  • 共享程序集需通过 GAC 工具注册。

Visual Studio示例


1. 创建一个类库项目

  1. 打开 Visual Studio。
  2. 选择“创建新项目”。
  3. 选择“类库(.NET Framework)”模板。
  4. 输入项目名称,例如 MyLibrary,选择保存位置,然后点击“创建”。
namespace MyLibrary
{
    public class Greeter
    {
        public string SayHello(string name)
        {
            return $"Hello, {name}!";
        }
    }
}

2. 设置程序集信息

  1. 在“解决方案资源管理器”中,找到 Properties,打开 AssemblyInfo.cs 文件。
using System.Reflection;
using System.Runtime.InteropServices;

[assembly: AssemblyTitle("MyLibrary")]
[assembly: AssemblyDescription("示例程序集")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("MyCompany")]
[assembly: AssemblyProduct("MyLibraryProduct")]
[assembly: AssemblyCopyright("Copyright © 2023")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

[assembly: ComVisible(false)]
[assembly: Guid("d9b1c3e2-b1e3-4ef1-8d91-2f6402c050f3")]

[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

3. 为程序集签名(强名称)

  1. 在“解决方案资源管理器”中右键点击项目 MyLibrary,选择“属性”。
  2. 切换到“签名”选项卡,勾选“为程序集签名”。
  3. 点击“新建...”创建一个新的密钥文件,输入名称(例如 MyLibraryKey),并设置密码(可选)。

4. 生成程序集

  1. 点击“生成”菜单,选择“生成解决方案”。

5. 使用程序集

创建一个新的“控制台应用程序”项目来引用并使用 MyLibrary。

  1. 在解决方案上右键点击,选择“添加” -> “新建项目”。
  2. 选择“控制台应用程序”模板,输入项目名称(例如 MyApp)。
  3. 在“解决方案资源管理器”中,右键点击 “MyApp” 项目,选择“添加” -> “项目引用”。
  4. 勾选 MyLibrary 项目。

在 Program.cs 中使用 MyLibrary:

using System;
using MyLibrary;

class Program
{
    static void Main()
    {
        Greeter greeter = new Greeter();
        Console.WriteLine(greeter.SayHello("World"));
    }
}

6. 运行程序

按下 Ctrl + F5 运行 MyApp 项目,应该会在控制台输出:

Hello, World!

7. (可选) 将程序集添加到 GAC

如果你希望将程序集添加到 GAC(全局程序集缓存),请使用“开发者命令提示符”执行以下命令:

gacutil -i "path\to\MyLibrary.dll"

使用场景


应用程序更新和版本管理:

  • 通过程序集版本控制和部署策略,便捷地管理应用程序的更新。

代码复用:

  • 使用共享程序集提高代码的复用性,减少冗余。

分布式部署:

  • 使用ClickOnce或安装程序,简化复杂应用程序的部署过程。 

 通过这,你可以在 Visual Studio 中创建和使用一个强名称的 C# 程序集,并在另一个项目中引用和使用它。如果有任何其他问题或需要进一步的解释,请随时问我!


 


网站公告

今日签到

点亮在社区的每一天
去签到