我可以使用 csc.exe 将一个 cs 文件编译为 .net 框架中的 dll...但是我如何通过 dotnet cli 在 dotnet core 中执行此操作?

yzd*_*yzd 3 c# asp.net-core

在.net框架中,我可以使用csc.exe将一个cs文件编译为dll文件。

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.exe /t:library /out:MyCScode.dll *.cs /debug /r:System.dll /r:System.Web.dll /r:System.Data.dll /r:System.Xml.dll
Run Code Online (Sandbox Code Playgroud)

我怎样才能在 dotnetcore 中做到这一点?

Bru*_*cia 5

您至少需要一个.csproj包含以下内容的文件:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

假设您的目标是netstandard2.0,这将允许您的库在 .NET Framework 4.6.1、.NET Core 2.0 以及实现该标准的任何其他运行时上运行。并且还下载了.NET Core 2.0 SDK

与旧的不同csproj,不需要添加单独的.cs文件来编译它们。

所以在包含这样内容的目录上:

  • Class1.cs
  • Class2.cs
  • Project.csproj(包含上面提到的内容)

只需运行:将如您所期望的那样在 bin 文件夹中dotnet build输出 a 。dll

值得一提的是,.NET Core CLI 具有 ASP.NET Core、类库、xUnit 测试项目等模板:

$ dotnet new classlib
Run Code Online (Sandbox Code Playgroud)

会给你csproj一个一流的文件。