В проекте .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>
, но я не уверен.