如何从生成的文件夹中删除自动生成的原始文件

时间:2019-03-26 12:11:31

标签: c# visual-studio msbuild protocol-buffers protobuf-c

我具有以下MSBuild,可从我的原型文件生成.cs文件。在我进行重建之前,该构建工作正常,直到它抱怨多次指定源文件'generated-proto-output / Trade.cs#。

如何在每次构建/重建之前删除我的.cs文件?

错误

严重性代码描述项目文件行抑制状态 警告CS2002源文件'generated-proto-output \ ErrorTrade.cs'被多次指定MyComp.Trade.Model C:\ dev \ workspaces \ trade-model-workspace \ model \ csharp \ MyComp.Trade.Model

在csproj文件中构建代码段

componentDidCatch

更新-完整的CSProj文件(根据兰斯的要求)

    <ItemGroup>
        <Protobuf Remove="%(RelativePath)generated-proto-output/**/*.cs" />
        <Protobuf Include="../../proto/**/*.proto" ProtoRoot="../../proto/" OutputDir="%(RelativePath)generated-proto-output/" GrpcServices="None" />
        <Protobuf Update="../../proto/**/*Service.proto" GrpcServices="Both" />
      </ItemGroup>

2 个答案:

答案 0 :(得分:0)

  

如何在每次构建/重建之前删除.cs文件?

使用下面的BeforeTargets尝试以下脚本:

go Tools=>Options=>Project and Solutions=>Build and Run
  

此外:

没有看到您的.csproj的全部内容,因此我无法弄清楚为什么您使用的构建片段无法正常工作。但是message task可能会帮助输出一些消息,无论引擎是否通过给定的路径找到文件。

在Visual Studio中,如果您将Detailed的构建详细程度更改为Ctrl+F,则在每次构建并重新构建后,您都会看到详细的输出消息。INI并键入目标名称将找到有关删除过程的详细信息:

enter image description here

希望它对您的故障排除有所帮助。

答案 1 :(得分:0)

尝试将CompileOutputs="false"添加到指令中。这将消除警告,并且不需要您在构建csharp protobuf build integration

之前删除文件