当前位置: 首页 > news >正文

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

程序集知识点


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# 程序集,并在另一个项目中引用和使用它。如果有任何其他问题或需要进一步的解释,请随时问我!


 

相关文章:

  • 【MySQL】03.库操作与表操作
  • 黑马点评相关知识总结
  • 本征半导体与杂质半导体
  • Redis中的事务和原子性
  • DockerHub被封禁,怎么将镜像传到国内?一种简单合规的镜像同步到国内方案[最佳实践]
  • 物流项目第三期(统一网关、工厂模式运用)
  • 内网穿透:轻松实现外网访问本地服务
  • 101个α因子#8
  • 新凌印 4.2.0 | 国内短视频去水印下载~图集下载
  • 【数据结构】队列的完整实现
  • Brooks Polycold快速循环水蒸气冷冻泵客户使用手含电路图,适用于真空室应用
  • AI能源危机:人工智能发展与环境可持续性的矛盾与解决之道
  • 深入剖析Zynq AMP模式下CPU1中断响应机制:从原理到创新实践
  • addStretch 与addSpace的区别
  • base算法
  • 【YOLOs-CPP-图像分类部署】01-构建项目
  • bi报表是什么意思?如何制作一张bi报表?
  • 丝杆支撑座:机床生命周期的精度与效能
  • day 31
  • Linux(ubuntu18.04)下安装instant-ngp环境
  • 凤阳文旅局长回应鼓楼瓦片脱落:楼宇是否属于文物?施工经费用在何处?
  • 重庆对外经贸学院通报:一学生在体育课后不慎坠入化粪池,不幸遇难
  • 长沙至赣州高铁初步设计获批,可填补湘赣两省斜向交通空白
  • 海军“吉祥方舟”号医院船开展海上卫勤演练
  • 俄乌上周在土耳其直接谈判,外交部回应
  • 雷军:小米芯片采用3纳米制程,首款SUV“YU7”即将发布