程序集是包含额外元数据的库或可执行文件。使用.NET Core,包含Main()方法的应用程序会创建为具有文件扩展名.dll的库。这个DLL需要一个宿主来加载这个库,为此可以使用dotnet run,或者在运行库环境中使用dotnet。使用.NET Core创建独立的应用程序时,会为每个平台创建不同的可执行文件来加载库。
下面看看一个简单的"Hello,World!"控制台应用程序,它使用如下命令在目录ConsoleApp中创建:
> dotnet new console
在构建应用程序之后,DLL 可以在bin/debug/netcoreapp2.0目录中找到。netcoreapp2.0目录依赖于csproj项目文件中列出的目标框架。
可以使用ildasm.exe(IL 反汇编程序)命令行实用程序读取程序集信息。ildasm.exe显示了程序集及其成员的类型,和附加的元数据。
单击MANIFEST,为程序集打开元数据信息,除了包含引用的程序集,还有几个已配置的程序集属性,例如AssemblyCompanyNameAttribute、AssemblyConfigurationAtrribute、AssemblyDescriptionAttribute、AssemblyFileVersionAttribute以及其他。
描述应用程序的程序集元数据可以使用Visual Studio配置;方法是在Project Properties中选择Package。(VS 2019中已删除该项)
当然,还可以直接编辑项目文件.csproj:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
</Project>
注:在前面的项目中,这些元数据信息通常使用全局C#属性添加到文件AssemblyInfo.cs中。仍然可以这样做,但是需要把csproj文件配置为不自动生成属性。