我如何让 .csproj 在构建自己之前构建 .proj 文件?

How do i have a .csproj build a .proj file before building itself?

我有一个 .csproj 文件和一个 .proj 文件。作为我的 .proj 文件的一部分,我正在生成一个文件以包含在 .csproj 中,因此 .proj 需要先 运行。

这怎么能做到。我最初尝试添加项目引用如下:

<ProjectReference Include="..\FileGenerator\FileGenerator.proj">
  <ReferenceOutputAssembly>false</ReferenceOutputAssembly> 
</ProjectReference>

然而,这给了我错误:

错误 MSB4057:目标 "GetNativeManifest" 在项目中不存在

然后我注意到我的 csproj 文件中有一个 BeforeBuild 目标。

我可以用它来构建另一个文件吗?

使用MSBuild task调用其他项目。示例:

<Target Name="BeforeBuild">
    <MSBuild Projects="..\FileGenerator\FileGenerator.proj" Targets="Build" />
</Target>

如果您需要作为通用 Clean 目标的一部分完成任何清理,您可以像这样插入自定义清理目标:

<Target Name="FileGeneratorClean" BeforeTargets="Clean">
    <MSBuild Projects="..\FileGenerator\FileGenerator.proj" Targets="Clean" />
</Target>