1:deps.json, runtimeconfig.json 以及 dll
标签:
深入 .NET Core 基础:deps.json, runtimeconfig.json 以及 dll原文地址:https://natemcmaster.com/blog/2017/12/21/netcore-primitives/
1. .NET Core 应用程序基础我学习过使用 gcc,C++ 和 vim 编程。当我开始使用 C# 和 .NET 的时候,点击 Visual Studio 中的 运行 按钮就是魔法,也带者失望。失望 - 不是因为我希望编写 Makefile - 而是因为我不知道 运行 都做了什么。所以,我开始探索。在本博文中,我将展示在 .NET Core 中使用的多数基础工具,并手工创建 .NET Core 应用程序而不借助于 Visual Studio。如果你是 .NET Core 的新手,并且希望揭开内幕,本文就是为您而来。如果您已经是一个 .NET Core 的开发者,并且好奇 *.deps.json 或者 *.runtimeconfig.json 文件是做什么的,我也会涵盖这些内容。
我将会终止 Visual Studio 的魔法,而一直使用命令行工具。为了你能够进行,您需要
.NET Core 2.1 SDK ( 实际上,.NET Core 3.1 SDK 已经发布,我想你更应该下载这个最新版)。下面的这些步骤是在 macOS 上完成的,但是它们也同样在 Linux 和 Windows 上一样工作,如果您将路径更改为 c:\Program Files\dotnet\ 和 dotnet.exe 的话。
2. C# 编译器C# 编译器将 *.cs 文件编译为 *.dll 文件,也被称为程序集文件。程序集文件具有便携可执行文件格式,.NET Core 可以在 Windows、macOS 和 Linux 上执行它。.NET Core app 是一系列 *.dll 文件的集合 (包括少量的配置文件)。它可以通过多种程序设计语言,例如 VB 或者 F# 等所生成,但是,C# 是最常用的一种。
C# 编译器可以直接调用来生成程序集文件。C# 编译器可以在 .NET Core SDK 中发现,并像下面这样被调用。
dotnet /usr/local/share/dotnet/sdk/2.1.3/Roslyn/bincore/csc.dll -help让我们为它提供一个输入内容。首先,创建名为 Program.cs 的文件,并编写如下 C# 代码:
/* Program.cs */class Program
{
static void Main(string[] args)
=> System.Console.WriteLine("Hello World!");
}
然后,在命令行,执行如下命令:
> dotnet \/usr/local/share/dotnet/sdk/2.1.3/Roslyn/bincore/csc.dll \
-reference:/usr/local/share/dotnet/sdk/NuGetFallbackFolder/microsoft.netcore.app/2.0.0/ref/netcoreapp2.0/System.Runtime.dll \
-reference:/usr/local/share/dotnet/sdk/NuGetFallbackFolder/microsoft.netcore.app/2.0.0/ref/netcoreapp2.0/System.Console.dll \
-out:Program.dll \
Program.cs
在 .NET Core 3.1 中,NuGetFallbackFoler 已经从 sdk 文件夹中移除了。这些程序集已经转移到 C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1 文件夹中。
如果在 Windows 下,注意空格的处理:
dotnet ‘C:\Program Files\dotnet\sdk\3.1.100\Roslyn\bincore\csc.dll‘ -reference:‘C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Runtime.dll‘ -reference:‘C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Console.dll‘ -out:Program.dll Program.cs参数的含义如下:
dotnet - C# 编译器本身也是一个 .NET Core 应用程序,所以,我们需要通过 dotnet 命令来启动它
/usr/local/share/dotnet/sdk/2.1.3/Roslyn/bincore/csc.dll - C# 编译器的路径。在 Windows 上,路径就是: C:\Program Files\dotnet\
-reference 参数指向了 System.Runtime.dll 和 System.Console.dll,这些类似于 C++ 中的头文件,它们为编译器提供关于 System.Object 和 System.Console 的信息。
-out:Program.dll,输出文件名。.dll 的扩展名是 .NET Core 的约定,并不是必需的。如果没有指定,编译器将生成名为 Program.exe 的文件。在 Windows 系统上,这会导致一点误解,因为你并不能通过双击 Program.exe 来启动它,所以,在 .NET Core 中,我们总是使用 .dll 扩展名。
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/41245.html
- 上一篇:CSS加载会阻塞页面显示?
- 下一篇:1、web爬虫,requests请求