Как определить задачу сборки protobuff в msbuild?

У меня есть файл протока в projectDirectory/api/api.proto, и я хочу встроить его в базу моего каталога проекта (в.cs). Это основное приложение dotnet. Вот что я пытаюсь:

  <ItemGroup>
    <PackageReference Include="Google.Protobuf" Version="3.6.0" />
    <PackageReference Include="Google.Protobuf.Tools" Version="3.6.0" />
    <PackageReference Include="Grpc" Version="1.13.0" />
    <PackageReference Include="Grpc.Tools" Version="1.13.0" />
  </ItemGroup>

  <Target Name="PreBuild" BeforeTargets="PreBuildEvent">
    <CallTarget Targets="BuildAPI" />
  </Target>

  <Target Name="BuildAPI" Inputs="obj/api.proto" Outputs="obj\api.cs">
    <Exec Command="$(NuGetPackageRoot)Google.Protobuf.Tools.3.6.0\tools\windows_x64\protoc -I ./proto/api --charp_out obj api.proto" Outputs="obj\api.cs" />
  </Target>

Я получаю сообщение об ошибке MSB3073 Команда "C:\Users\xxx.nuget\packages\Google.Protobuf.Tools.3.6.0\tools\windows_x64\protoc -I ./proto/api --charp_out obj api.proto" завершена с код 3.

Я проверил, что путь к exe-файлу правильный, поэтому я предполагаю, что моя команда неверна.

0 ответов

Другие вопросы по тегам