You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否存在无需构建即可启动Roslyn源代码生成器的dotnet/msbuild CLI命令?

仅运行Roslyn源代码生成器而不触发完整构建的方法

可以通过MSBuild的特定目标单独执行源代码生成器,无需触发完整构建流程,以下是可行的命令:

通用命令

直接调用GenerateCode目标,同时跳过项目依赖构建:

dotnet msbuild /t:GenerateCode /p:BuildProjectReferences=false

若要指定具体项目文件:

dotnet msbuild YourProject.csproj /t:GenerateCode /p:BuildProjectReferences=false

备选方案(设计时生成场景)

使用CompileDesignTime目标并跳过编译器执行,仅保留生成器运行环节:

dotnet msbuild /t:CompileDesignTime /p:SkipCompilerExecution=true

命令说明

  • /t:GenerateCode:触发项目中所有Roslyn源代码生成器执行,生成对应的源代码文件。
  • /p:BuildProjectReferences=false:禁止构建项目依赖项,减少不必要的操作开销。
  • /t:CompileDesignTime:执行设计时编译逻辑,这一过程默认会运行源代码生成器;搭配SkipCompilerExecution=true可跳过实际代码编译,只运行生成器。

注意事项

  • 不同项目类型(如类库、Web项目)的MSBuild目标可能存在差异,如果GenerateCode目标不生效,可以通过dotnet msbuild /pp预处理项目文件,搜索与源代码生成相关的目标名称。
  • 生成的源代码默认存储在项目的obj目录下,具体路径会根据项目框架版本、配置(Debug/Release)有所不同,例如obj/Debug/net8.0/generated。
  • 如果生成器依赖特定构建配置属性,需在命令中额外指定,比如/p:Configuration=Release来匹配发布模式配置。

内容的提问来源于stack exchange,提问作者Spoomer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 13:45:28