在.NET框架中,AssemblyInfo.cs文件是一个特殊的代码文件,它位于每个程序集(Assembly)的根目录下,这个文件主要用于存储与程序集相关的元数据信息,如版本号、作者、版权等信息,这些信息对于程序集的运行时行为和部署至关重要,本文将详细介绍AssemblyInfo.cs文件的作用及其相关技术。
AssemblyInfo.cs文件的作用
1、存储程序集的元数据信息
AssemblyInfo.cs文件中定义了一些静态属性,如Title、Description、Company、Product等,这些属性用于存储程序集的元数据信息,这些信息可以在运行时通过反射获取,也可以在程序集被加载时自动读取。
2、定义程序集的版本号
在AssemblyInfo.cs文件中,有一个名为AssemblyVersion的属性,它用于定义程序集的版本号,版本号通常由主版本号、次版本号和修订号组成,格式为“主版本号.次版本号.修订号”,版本号对于程序集的升级和兼容性非常重要,因为不同的版本号表示程序集的不同状态,用户在升级程序集时需要确保新版本的程序集能够兼容旧版本的程序集。
3、定义程序集的公钥和签名
在AssemblyInfo.cs文件中,有一个名为AssemblyKeyFile的属性,它用于定义程序集的公钥文件路径,公钥文件是一个包含公钥和私钥的PEM格式文件,用于对程序集进行数字签名,数字签名可以确保程序集在传输过程中不被篡改,同时也可以验证程序集的来源。
4、定义程序集的资源文件
在AssemblyInfo.cs文件中,可以使用以下预定义的资源标识符来引用程序集的资源文件:
NeutralResources:用于存储不依赖于任何特定区域性或文化资源的文件。
CultureNeutralResources:用于存储不依赖于任何特定区域性或文化资源的文件,但需要使用Culture参数进行访问。
RootDirectory:用于存储根目录下的资源文件。
SatelliteResources:用于存储依赖于特定区域性或文化资源的文件。
Exe:用于存储可执行文件的资源文件。
AppConfig:用于存储应用程序配置文件的资源文件。
Assembly:用于存储程序集本身的资源文件。
AssemblyInfo.cs文件的技术介绍
1、属性的定义和使用
在AssemblyInfo.cs文件中,可以使用以下预定义的属性来存储程序集的元数据信息:
AssemblyTitle:程序集的标题。
AssemblyDescription:程序集的描述。
AssemblyCompany:程序集的公司名称。
AssemblyProduct:程序集的产品名称。
AssemblyCopyright:程序集的版权信息。
AssemblyTrademark:程序集的商标信息。
AssemblyCulture:程序集的区域性和文化信息。
AssemblyVersion:程序集的版本号。
AssemblyFileVersion:程序集的文件版本号。
AssemblyInformationalVersion:程序集的信息版本号。
AssemblyConfiguration:程序集的配置信息。
AssemblyDelaySign:指示是否延迟签名的程序集。
AssemblyKeyFile:程序集的公钥文件路径。
AssemblyKeyName:程序集的公钥名称。
AssemblyDefaultAlias:程序集的默认别名。
AssemblyOriginatorKeyFile:程序集的原点公钥文件路径。
AssemblyOriginatorKeyName:程序集的原点公钥名称。
AssemblyCompanyEtc:程序集的其他公司信息。
AssemblyCodeBase:程序集的基本代码基址。
AssemblyCompatibilityVersion:程序集的兼容性版本号。
AssemblyFullName:程序集的完整名称。
AssemblyLocation:程序集的位置信息。
AssemblyName:程序集的名称。
AssemblyProcessorArchitecture:程序集的处理器架构信息。
AssemblyProductVersion:程序集的产品版本号。
ComVisible:指示是否使公共类型在COM可见的程序集属性值。
Debuggable:指示是否启用调试的程序集属性值。
DynamicBase:指示动态链接库的基本地址的程序集属性值。
EmitComWrappers:指示是否生成COM包装器的程序集属性值。
EncodeXmlDisplayName:指示是否对XML显示名称进行编码的程序集属性值。
EnableUnmanagedDebugging:指示是否启用未托管调试的程序集属性值。
GenerateProbingAssembly:指示是否生成探查程序的程序集属性值。
Guid:程序集的唯一标识符(GUID)。
IsWebBootstrapper:指示是否为Web启动器的程序集属性值。
LicenseUrl:程序集的许可证URL。
NeutralResourcesLanguage:用于存储不依赖于任何特定区域性或文化资源的文件的语言信息。
SatelliteContractVersion:卫星合约的版本号。
TargetFrameworkIdentifier:目标框架的标识符。
TargetFrameworkProfile:目标框架的配置信息。
TargetFrameworkVersion:目标框架的版本号。
ApplicationIcon:应用程序图标的资源标识符。
ApplicationName:应用程序的名称资源标识符。
AssembliesLoadedFrom:已加载的程序集列表资源标识符。
CodeBase:代码基址资源标识符。
CompatibleRuntimeVersion:兼容的运行时版本资源标识符。
EntryPointTokenTableEntryPointToken:入口点令牌表入口点令牌资源标识符。
HashValueOfTypeDefinitionsAssemblyAttributeSourceTypesToIgnoreWhenGeneratingHashValueForTypeDefinitions:生成类型定义哈希值时要忽略的类型定义源类型资源标识符列表资源标识符。
InternalDefaultFlowMetadataNameSpaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFiles:内部默认流元数据命名空间ID的资源标识符,该ID针对的目标平台不在构建设置或项目属性文件中的流元数据命名空间ID资源标识符列表资源标识符。
InternalDefaultFlowMetadataNameSpaceIdForTargetPlatformInBuildSettingsOrProjectPropertiesFilesFlowMetadataNamespaceIdForTargetPlatformInBuildSettingsOrProjectPropertiesFiles:内部默认流元数据命名空间ID的资源标识符,该ID针对的目标平台在构建设置或项目属性文件中的流元数据命名空间ID资源标识符列表资源标识符。
InternalDefaultFlowMetadataNameSpaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProjectPropertiesFilesWithNoMatchingTypeDefinitionFoundFlowMetadataNamespaceIdForTargetPlatformNotInBuildSettingsOrProgram
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/238689.html