2

我创建了一个源生成器来扩展(部分)满足某些标准的类。为了检查和查看生成的代码,我通过将以下内容添加到我的项目中来启用这些文件的发射:

    <PropertyGroup>
        <EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
        <CompilerGeneratedFilesOutputPath>Generated</CompilerGeneratedFilesOutputPath>
    </PropertyGroup>

只要我不进行重构——比如重命名一个类,它就可以工作。因为当我重命名“源”类时,每个类都会生成一个文件但不会删除。

所以我添加了以下代码来清理所有生成的文件(在清理和重建时)

    <Target Name="CleanSourceGeneratedFiles" AfterTargets="Clean">
        <RemoveDir Directories="Generated" />
    </Target>

然而,每第二次重建都会失败: Error CS2001 Source file 'xyz.generated.cs' could not be found.

因此,我正在寻找另一种方法来使我生成的源代码保持最新,该项目不仅每次尝试都会编译一次。

4

0 回答 0