编译选项和优化
本文档介绍如何配置 CSharpCompilationOptions 以控制编译行为和优化。
📋 文档信息
| 属性 | 值 |
|---|---|
| 难度 | 中级 |
| 阅读时间 | 20 分钟 |
| 前置知识 | 编译创建基础 |
| 相关文档 | 编译创建和配置、高级技术 |
🎯 学习目标
- ✅ 配置输出类型(DLL、EXE等)
- ✅ 设置优化级别
- ✅ 配置平台目标
- ✅ 启用/禁用不安全代码
CSharpCompilationOptions
基本配置
csharp
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
// 创建控制台应用程序选项
var options = new CSharpCompilationOptions(
outputKind: OutputKind.ConsoleApplication);
// 创建类库选项
var libraryOptions = new CSharpCompilationOptions(
outputKind: OutputKind.DynamicallyLinkedLibrary);1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
优化级别
csharp
// 调试模式 - 不优化
var debugOptions = new CSharpCompilationOptions(
OutputKind.DynamicallyLinkedLibrary,
optimizationLevel: OptimizationLevel.Debug);
// 发布模式 - 完全优化
var releaseOptions = new CSharpCompilationOptions(
OutputKind.DynamicallyLinkedLibrary,
optimizationLevel: OptimizationLevel.Release);1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
完整配置
csharp
var options = new CSharpCompilationOptions(
outputKind: OutputKind.ConsoleApplication,
optimizationLevel: OptimizationLevel.Release,
allowUnsafe: false,
platform: Platform.AnyCpu,
deterministic: true,
warningLevel: 4);1
2
3
4
5
6
7
2
3
4
5
6
7
语言版本
csharp
using Microsoft.CodeAnalysis.CSharp;
// 使用最新的 C# 语言版本
var parseOptions = new CSharpParseOptions(
languageVersion: LanguageVersion.Latest);
// 使用特定的 C# 语言版本
var csharp10Options = new CSharpParseOptions(
languageVersion: LanguageVersion.CSharp10);1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
关键要点
- ✅
CSharpCompilationOptions控制编译行为 - ✅
OutputKind指定输出类型(DLL、EXE等) - ✅
OptimizationLevel控制代码优化程度 - ✅
Platform指定目标平台(AnyCpu、X64等) - ✅ 编译选项是不可变的,使用
With方法修改
相关文档
最后更新: 2026-02-06