Skip to content

编译选项和优化

本文档介绍如何配置 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);

优化级别

csharp
// 调试模式 - 不优化
var debugOptions = new CSharpCompilationOptions(
    OutputKind.DynamicallyLinkedLibrary,
    optimizationLevel: OptimizationLevel.Debug);

// 发布模式 - 完全优化
var releaseOptions = new CSharpCompilationOptions(
    OutputKind.DynamicallyLinkedLibrary,
    optimizationLevel: OptimizationLevel.Release);

完整配置

csharp
var options = new CSharpCompilationOptions(
    outputKind: OutputKind.ConsoleApplication,
    optimizationLevel: OptimizationLevel.Release,
    allowUnsafe: false,
    platform: Platform.AnyCpu,
    deterministic: true,
    warningLevel: 4);

语言版本

csharp
using Microsoft.CodeAnalysis.CSharp;

// 使用最新的 C# 语言版本
var parseOptions = new CSharpParseOptions(
    languageVersion: LanguageVersion.Latest);

// 使用特定的 C# 语言版本
var csharp10Options = new CSharpParseOptions(
    languageVersion: LanguageVersion.CSharp10);

关键要点

  • CSharpCompilationOptions 控制编译行为
  • OutputKind 指定输出类型(DLL、EXE等)
  • OptimizationLevel 控制代码优化程度
  • Platform 指定目标平台(AnyCpu、X64等)
  • ✅ 编译选项是不可变的,使用 With 方法修改

相关文档


最后更新: 2026-02-06

基于 MIT 许可发布