自最近升级后新生成的 GeneratedMSBuildEditorConfig 文件

New generated GeneratedMSBuildEditorConfig file since recent upgrade

我一直在升级一个项目,自从安装了最新版本的 Visual Studio 2019 后,发现以下文件正在输出到磁盘

MyProjectName.GeneratedMSBuildEditorConfig.editorconfig

我认为这与 roslyn 编译器有关,并在此提交中引入:https://github.com/dotnet/roslyn/commit/de348c5a77977459a4138de0a62487e00980e28a#diff-e87b4990385fcfea8cf3f744bb8ad23e

关于这个文件是什么、它做什么以及它是否应该在源代码管理中或被排除在外的明显问题已经出现。我知道 .editorconfig 文件的用途,但这个文件出乎意料。我的搜索没有任何结果。任何人都可以阐明这一点吗?

正确的拉取请求是 this one——它是作为某些 MSBuild 逻辑将值传递给某些 Roslyn 分析器的一种方式构建的。这是内部实现细节,不应签入源代码管理。

虽然您注意到了这个文件,但我很惊讶 -- 它应该生成到您的 obj\ 目录中,您应该已经将其排除在源代码管理之外,并且一开始就没有真正注意到它。它是在其他地方生成的吗?

更新:这已在 Visual Studio 16.9 及更高版本中修复。


使用legacy/non SDK-style 项目时出现错误,导致这些文件输出到错误的位置。我们在这里解决了这个问题:https://github.com/dotnet/roslyn/pull/48781

在此期间,作为解决方法,您可以通过将以下内容添加到您的项目文件来明确设置生成的文件输出路径

<PropertyGroup>
    <GeneratedMSBuildEditorConfigFile>$(IntermediateOutputPath)$(MSBuildProjectName).GeneratedMSBuildEditorConfig.editorconfig</GeneratedMSBuildEditorConfigFile>
</PropertyGroup>