NuGet에는 빌드시 사용할 수 있도록 설계된 여러 패키지가 있습니다. 예를 들어 Google.Protobuf.Tools이고 protoc.exe
이 포함되어 있습니다.ASP.NET 코어와 함께 NuGet 빌드 도구 패키지를 사용하십시오.
.NET Core 이전의 .csproj 시스템을 사용하면 Google.Protobuf.Tools를 추가 한 다음 사전 빌드 이벤트를 사용하여 ..\Packages\...\protoc ...
을 실행할 수 있습니다.
새로운 .NET Core .csproj 시스템을 사용하면 어떤면에서는 더 멋지게 보입니다.
<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
<CallTarget Targets="DeviceMessages" />
</Target>
<Target Name="DeviceMessages" Inputs="DeviceMessages.proto" Outputs="obj\DeviceMessages.cs">
<Exec Command="..\Packages\Google.Protobuf.Tools.3.4.0\tools\windows_x64\protoc --proto_path=. --csharp_out=obj DeviceMessages.proto" Outputs="obj\DeviceMessages.cs" />
</Target>
문제는 더 이상 Packages
폴더가 있습니다 : 당신은 쉽게 다음과 같이 빌드 증분 얻을 수있는 빌드 대상을 손으로 추가 할 수 있도록 예를 들어, .csproj 파일은 정리됩니다. 일반적으로 좋은 일입니다. 그러나 MSBuild 타겟에서 사용할 NuGet 빌드 도구 패키지로의 경로를 얻으려면 어떻게해야합니까?