Roslyn 来自命令行('cmd'),Windows 10 场景示例:
(注意:无需安装 Visual Studio,只需安装 .NET 核心)
-
打开“cmd”并创建文件夹“dotnet-csharp-tools”:
D:>mkdir "dotnet-csharp-tools"
-
导航到文件夹“dotnet-csharp-tools”:
D:>cd "dotnet-csharp-tools"
-
在“dotnet-csharp-tools”文件夹中下载“nuget.exe”最新版本:
https://www.nuget.org/downloads
-
从以下位置检查“Microsoft.CodeDom.Providers.DotNetCompilerPlatform”的最新版本的名称:
https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/
例如:'Microsoft.CodeDom.Providers.DotNetCompilerPlatform -Version 3.6.0'
-
从'cmd'(打开文件夹“dotnet-csharp-tools”),运行命令:
D:\dotnet-csharp-tools>nuget install Microsoft.CodeDom.Providers.DotNetCompilerPlatform -Version 3.6.0
-
从 'cmd' 导航到 'D:\dotnet-csharp-tools\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\Roslyn472'(警告:文件夹名称 'Roslyn472' 可能不同,如果是其他版本)
D:\dotnet-csharp-tools>cd Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\Roslyn472
-
从“文件资源管理器”中找到“csc.exe”(在当前文件夹“Roslyn472”中)。
复制名为“csc-roslyn.exe”的“csc.exe”(名称可以是任何名称)。
-
对于“Windows 10”,打开:
'编辑系统环境变量' -> '系统变量' ->
“路径”->“编辑”->“新建”->
D:\dotnet-csharp-tools\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\Roslyn472
-
关闭并再次打开“cmd”(命令提示符)。
需要重新启动此“cmd”,因为已编辑“系统环境变量”。
-
通过运行命令检查'csc-roslyn'是否被'cmd'识别:
csc-罗斯林
-
创建文件夹 'D:\csharp-projects'(文件夹名称可以是任何名称)
并在 'D:\csharp-projects' C# 源文件中创建,例如:
Vehicle.cs
class Vehicle
{
private string name = "unknown";
private int producedYear = -1;
public Vehicle(string name, int producedYear)
{
this.Name = name;
this.ProducedYear = producedYear;
}
public string Name
{
get { return this.name; }
set { this.name = value; }
}
public int ProducedYear
{
get { return this.producedYear; }
set { this.producedYear = value; }
}
}
Car.cs
class Car : Vehicle
{
private string maker = "unknown";
public Car(string name, int age, string maker)
: base(name, age)
{
this.Maker = maker;
}
public string Maker
{
get { return this.maker; }
set { this.maker = value; }
}
public override string ToString()
{
return $"{this.Name}, {this.ProducedYear}, {this.Maker}";
}
}
Autoservice.cs
using System;
class Autoservice
{
public static void Main()
{
Car car1 = new Car("Ford Taunus", 1971, "Ford");
Car car2 = new Car("Opel Ascona", 1978, "Opel");
Car car3 = new Car("Saab 900", 1984, "Saab");
Console.WriteLine(car1);
Console.WriteLine(car2);
Console.WriteLine(car3);
}
}
-
从 'cmd'(命令提示符)打开 'D:\csharp-projects' 并运行命令:
csc-roslyn /target:exe /out:Autoservice.exe Vehicle.cs Car.cs Autoservice.cs
-
从“cmd”运行:
Autoservice.exe
-
结果应该是:
福特 Taunus,1971 年,福特
欧宝 Ascona, 1978, 欧宝
萨博 900, 1984, 萨博