C#教程

关注公众号 jb51net

关闭
首页 > 软件编程 > C#教程 > C# csc命令和dotnet命令

C#中的csc命令和dotnet命令详解

作者:张謹礧

C#中的csc是命令行编译器,用于编译.cs生成.exe或.dll;dotnet是跨平台工具,支持项目构建、运行及包管理,推荐用于现代开发,本文给大家介绍C#中的csc命令和dotnet命令,感兴趣的朋友一起看看吧

csc命令

在 C# 中,csc 是 C# 编译器(C# Compiler)的命令行工具,用于从命令行编译 C# 源代码文件(.cs)生成可执行文件(.exe)或类库(.dll)。以下是关于 csc 命令的详细介绍:

基本语法

csc [选项] [源文件.cs]

常用选项

选项作用
/out:文件名指定输出文件的名称(如:/out:MyProgram.exe)。
/target:exe生成控制台应用程序(默认)。
/target:winexe生成 Windows 窗体应用程序(无控制台窗口)。
/target:library生成类库(.dll)。
/reference:程序集.dll引用外部程序集(如:/reference:System.Data.dll)。
/define:符号定义条件编译符号(如:/define:DEBUG)。
/debug生成调试信息(用于调试器)。
/optimize启用代码优化。
/recurse:模式递归编译指定目录下的所有匹配文件(如:/recurse:*.cs)。

示例

1.编译单个文件为控制台应用

csc Program.cs

2.指定输出文件名

csc /out:MyApp.exe Program.cs

3.编译多个文件

csc /out:MyApp.exe Program.cs Class1.cs Class2.cs

4.生成类库(DLL)

csc /target:library /out:MyLibrary.dll Class1.cs Class2.cs

5.引用外部程序集

csc /out:MyApp.exe /reference:Newtonsoft.Json.dll Program.cs

注意事项

  1. 路径问题

    • 如果 csc 命令无法找到,需要确保已安装 .NET SDK,并将其路径添加到系统环境变量中(通常在 C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe 或更高版本路径)。

    • 推荐使用 .NET Core SDK(跨平台),直接通过 dotnet 命令编译(如:dotnet build)。

  2. 现代替代方案

对于大型项目,推荐使用

.csproj

项目文件和

dotnet

命令,而不是手动编写

csc

命令。例如:

dotnet new console -n MyApp  # 创建新项目
dotnet build                 # 编译项目
  1. IDE 支持

    • Visual Studio、Visual Studio Code 等 IDE 会自动调用 csc 进行编译,无需手动输入命令。

进阶用法

条件编译

csc /define:DEBUG /out:MyApp.exe Program.cs

在代码中使用 #if DEBUG 判断编译条件。

资源嵌入

csc /resource:MyResource.resx /out:MyApp.exe Program.cs

将资源文件嵌入到程序集中。

如果需要更详细的选项列表,可以在命令行中输入:

csc /?

或查阅微软官方文档:csc.exe 命令行选项

dotnet命令

在 .NET 开发中,dotnet 是一个跨平台的命令行工具,用于创建、构建、运行和发布 .NET 应用程序及管理 NuGet 包。以下是常用的 dotnet 命令及其用法:

1. 项目初始化

# 创建控制台应用
dotnet new console -n MyApp
​
# 创建类库
dotnet new classlib -n MyLibrary
​
# 创建 Web API
dotnet new webapi -n MyApi
​
# 创建 Windows Forms 应用(需 .NET 6+)
dotnet new winforms -n MyWinFormsApp
​
# 创建 WPF 应用
dotnet new wpf -n MyWpfApp
​
# 列出所有可用模板
dotnet new list

2. 项目构建与运行

# 恢复项目依赖
dotnet restore
​
# 构建项目(默认 Debug 模式)
dotnet build
​
# 构建项目(Release 模式)
dotnet build -c Release
​
# 运行应用程序(需项目中包含可执行入口)
dotnet run
​
# 运行指定项目
dotnet run --project src/MyApp/MyApp.csproj

3. 包管理

# 添加 NuGet 包
dotnet add package Newtonsoft.Json
​
# 添加项目引用
dotnet add reference ../MyLibrary/MyLibrary.csproj
​
# 移除 NuGet 包
dotnet remove package Newtonsoft.Json
​
# 查看已安装的包
dotnet list package

4. 发布应用程序

# 发布为可移植应用(依赖系统的 .NET 运行时)
dotnet publish -c Release
​
# 发布为自包含应用(包含所有依赖,无需安装 .NET 运行时)
dotnet publish -c Release -r win-x64 --self-contained true
​
# 常用运行时标识符 (RID)
# - win-x64 (Windows x64)
# - linux-x64 (Linux x64)
# - osx-x64 (macOS x64)

5. 测试

# 创建 xUnit 测试项目
dotnet new xunit -n MyApp.Tests
​
# 运行测试
dotnet test

6. 工具管理

# 安装全局工具
dotnet tool install -g dotnet-ef
​
# 更新全局工具
dotnet tool update -g dotnet-ef
​
# 运行本地工具
dotnet tool run dotnet-ef migrations add InitialCreate

7. 其他常用命令

# 查看 .NET SDK 版本
dotnet --version
​
# 查看已安装的 SDK 和运行时
dotnet --list-sdks
dotnet --list-runtimes
​
# 打开项目文件(如 .csproj)的编辑模式
dotnet edit MyProject.csproj

示例工作流

创建并运行一个简单的控制台应用:

# 创建项目
dotnet new console -n HelloWorld
cd HelloWorld
​
# 构建项目
dotnet build
​
# 运行项目
dotnet run
​
# 发布项目(可移植)
dotnet publish -c Release
​
# 发布项目(自包含,Windows x64)
dotnet publish -c Release -r win-x64 --self-contained true

注意事项

  1. 路径与项目结构

    • 命令需在项目根目录(含 .csproj 文件)或解决方案目录下执行。

    • 使用 --project 参数可指定具体项目路径。

  2. 跨平台兼容性

    • dotnet 命令在 Windows、Linux、macOS 上均可使用。

    • 自包含发布需指定目标平台的 RID。

  3. 版本管理

使用

global.json

文件锁定 SDK 版本:

{
  "sdk": {
    "version": "6.0.100"
  }
}

如需详细帮助,可运行:

dotnet --help
dotnet [命令] --help  # 例如:dotnet new --help

到此这篇关于C#中的csc命令和dotnet命令的文章就介绍到这了,更多相关C# csc命令和dotnet命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文