深入理解.NET Core的基元: deps.json, runtimeconfig.json, dll文件

本文深入探讨了.NET Core的基础元素,包括C#编译器如何将源代码编译为dll,runtimeconfig.json在运行时配置中的作用,以及deps.json如何管理依赖关系。此外,还解释了如何处理动态链接库,包管理和编译警告,展示了如何手动配置运行时以确保程序正确执行。
摘要由CSDN通过智能技术生成

原文链接: Deep-dive into .NET Core primitives: deps.json, runtimeconfig.json, and dll’s
作者: Nate McMaster

C#编译器(The C# Compiler)

C#的编译器可以将cs文件转换为dll文件, 即程序集文件。程序集文件是一个便携的可执行格式文件, 借助.NET Core,它可以运行在Windows, MacOS和Linux系统中。

在Windows系统中, .NET Core的编译器文件csc.dll存放在以下目录中

C:\Program Files\dotnet\sdk\[.NET Core 版本号]\Roslyn\bincore

笔者使用了2.1.400版本,所以编译器存放目录是C:\Program Files\dotnet\sdk\2.1.400\Roslyn\bincore

.NET Core编译器文件csc.dll也是一个.NET Core应用程序,所以你可以使用dotnet命令直接执行编译器

C:\test>dotnet C:\Program Files\dotnet\sdk\2.1.400\Roslyn\bincore\csc.dll --help

下面我们尝试手动编译一个cs文件。
首先我们先创建一个Program.cs文件,内容如下:

/* Program.cs */
class Program
{
    static void Main(string[] args)
        => System.Console.WriteLine("Hello World!");
}

然后我们使用命令行命令将其编译

C:\test>dotnet "C:\Program Files\dotnet\sdk\2.1.400\Roslyn\bincore\csc.dll" 
-reference:"C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Runtime.dll" 
-reference:"C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Console.dll" 
-out:Program.dll 
Program.cs

参数说明

  • "C:\Program Files\dotnet\sdk\2.1.400\Roslyn\bincore\csc.dll"是编译器所在的路径
  • -reference参数表示编译中需要引用的dll, 该参数可以指定多个dll , 例子中我们引用了System.Runtime.dll和System.Console.dll
  • -out参数表示编译生成的dll路径
  • Program.cs表示编译的源文件地址

Program.cs编译成功, Program.dll生成完毕。

runtimeconfig.json

对于.NET Core应用程序来说runtimeconfig.json是不可或缺的。它是用来配置运行时的。

如果缺少了这个文件,运行dll文件的时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值