Вызывая инструмент в пакете NuGet с <Generator>, получая неожиданную ошибку «не найден» - PullRequest
0 голосов
/ 15 октября 2019

В проекте .NET Core 3.0 я установил Google.Protobuf.Tools,

<PackageReference Include="Google.Protobuf" Version="3.10.0" />
<PackageReference Include="Google.Protobuf.Tools" Version="3.10.0" />

Двоичный файл protoc находится там, где он ожидается,

C:\Users\jdphe>dir %USERPROFILE%\.nuget\packages\google.protobuf.tools\3.10.0\tools\windows_x64
 Volume in drive C has no label.
 Volume Serial Number is 967E-3D8C

 Directory of C:\Users\jdphe\.nuget\packages\google.protobuf.tools\3.10.0\tools\windows_x64

10/14/2019  07:36 PM    <DIR>          .
10/14/2019  07:36 PM    <DIR>          ..
10/02/2019  06:08 PM         3,611,120 protoc.exe
              1 File(s)      3,611,120 bytes
              2 Dir(s)  152,718,581,760 bytes free

Однако,при попытке вызвать protoc с тегом <Generator> в моем csproj,

<None Update="Person.proto">
  <Generator>$(NugetPackageRoot)google.protobuf.tools\3.10.0\tools\windows_x64\protoc.exe --csharp_out=Model Person.proto</Generator>
</None>

Генератор 'C: \ Users \ jdphe.nuget \ packages \ google.protobuf.tools \ 3.10.0 \ tools \ windows_x64 \ protoc.exe --csharp_out = Модель Person.proto 'не найден. Пожалуйста, проверьте имя.

Я проверил, что команда запускается, как и ожидалось, из папки проекта в командной строке,

C: \ Users \ jdphe \ source\ repos \ Phenix.Protobufconcat \ Phenix.Protobufconcat>% USERPROFILE% .nuget \ packages \ google.protobuf.tools \ 3.10.0 \ tools \ windows_x64 \ protoc.exe --csharp_out = Модель Person.proto

Возможно, я не понимаю, как должен работать тег <Generator>, но я не уверен.

1 Ответ

0 голосов
/ 15 октября 2019

Попробуйте:

<PackageReference Include="Google.Protobuf.Tools" Version="3.10.0">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...