当前位置:首页 > C# > 正文

C#程序集属性详解(手把手教你自定义.NET程序集元数据)

在C#开发中,程序集属性(Assembly Attributes)是用于描述和标识 .NET 程序集(.dll 或 .exe 文件)的重要元数据。这些信息不仅帮助开发者管理项目版本、版权等信息,还能被操作系统、IDE 或部署工具识别使用。本文将带你从零开始,详细讲解如何在C#项目中自定义程序集元数据,即使是编程小白也能轻松上手!

C#程序集属性详解(手把手教你自定义.NET程序集元数据) C#程序集属性 自定义程序集元数据 .NET AssemblyInfo AssemblyTitle和AssemblyVersion设置 第1张

什么是程序集属性?

程序集属性是一组写在代码中的特性(Attribute),用于向 .NET 运行时提供关于当前程序集的描述性信息。常见的属性包括:

  • AssemblyTitle:程序集的标题
  • AssemblyDescription:程序集的描述
  • AssemblyVersion:程序集的版本号
  • AssemblyCompany:公司名称
  • AssemblyCopyright:版权信息

传统方式:通过 AssemblyInfo.cs 文件设置

在较旧的 .NET Framework 项目或未启用 SDK 样式项目的 .NET Core/.NET 5+ 项目中,程序集属性通常定义在 Properties/AssemblyInfo.cs 文件中。

using System.Reflection;using System.Runtime.InteropServices;[assembly: AssemblyTitle("我的第一个C#应用程序")][assembly: AssemblyDescription("这是一个用于演示程序集属性的示例项目")][assembly: AssemblyConfiguration("")][assembly: AssemblyCompany("示例科技有限公司")][assembly: AssemblyProduct("DemoApp")][assembly: AssemblyCopyright("Copyright © 示例科技 2024")][assembly: AssemblyTrademark("")][assembly: AssemblyCulture("")]// 程序集版本:主版本.次版本.内部版本号.修订号[assembly: AssemblyVersion("1.0.0.0")][assembly: AssemblyFileVersion("1.0.0.0")]

保存后,当你右键点击生成的 .exe 或 .dll 文件 → 属性 → 详细信息,就能看到你填写的标题、公司、版权等信息了!这就是 .NET AssemblyInfo 的作用。

现代方式:在 .csproj 文件中直接设置(推荐)

从 .NET Core 开始,微软推荐将程序集属性直接写入项目文件(.csproj)中,这样更简洁,无需单独维护 AssemblyInfo.cs

打开你的 .csproj 文件,添加如下属性:

<Project Sdk="Microsoft.NET.Sdk">  <PropertyGroup>    <TargetFramework>net8.0</TargetFramework>        <AssemblyTitle>我的现代C#应用</AssemblyTitle>    <AssemblyDescription>使用.csproj直接设置程序集属性</AssemblyDescription>    <Company>新示例科技</Company>    <Copyright>© 新示例科技 2024</Copyright>    <Version>2.1.0</Version>    <AssemblyVersion>2.1.0.0</AssemblyVersion>    <FileVersion>2.1.0.123</FileVersion>  </PropertyGroup></Project>

注意:如果你同时使用了 AssemblyInfo.cs.csproj 设置相同属性,可能会导致编译冲突。建议选择一种方式并保持一致。

常用程序集属性说明

属性名 作用
AssemblyTitle 程序集的友好名称,显示在文件属性中
AssemblyVersion .NET 强名称绑定使用的版本号,格式为 主.次.构建.修订
AssemblyFileVersion Windows 文件系统显示的版本号,可通过资源管理器查看
AssemblyInformationalVersion 产品版本,可包含字符串如 “2.1.0-beta”

如何验证设置是否生效?

方法一:在 Windows 资源管理器中右键点击生成的 .exe 或 .dll 文件 → 属性 → 详细信息,即可看到你设置的 AssemblyTitle公司版权 等信息。

方法二:在代码中动态读取:

using System;using System.Reflection;class Program{    static void Main()    {        var assembly = Assembly.GetExecutingAssembly();        var title = assembly.GetCustomAttribute<AssemblyTitleAttribute>()?.Title;        var version = assembly.GetName().Version;        var copyright = assembly.GetCustomAttribute<AssemblyCopyrightAttribute>()?.Copyright;        Console.WriteLine($"标题: {title}");        Console.WriteLine($"版本: {version}");        Console.WriteLine($"版权: {copyright}");    }}

总结

通过本文,你已经掌握了在 C# 中自定义程序集元数据的两种主流方式:传统的 AssemblyInfo.cs 和现代的 .csproj 配置。合理设置 C#程序集属性 不仅能让项目更专业,也便于团队协作和版本管理。记住关键的 SEO 关键词:C#程序集属性自定义程序集元数据.NET AssemblyInfoAssemblyTitle和AssemblyVersion设置,它们将帮助你在开发中快速定位相关知识。

祝你编码愉快,打造更规范的 .NET 应用!