Visual Studio自動編譯gRPC工程的設定

來源:互聯網
上載者:User

標籤:cli   project   配置   rpc   自動編譯   for   修改   script   toc   

前段時間研究一個java程式,增加一些功能。其中用到java和C#的通訊。自然,有多種辦法,後來實際上是用javascript調用C#的REST WCF服務實現的。但是在查資料的過程中,發現有個Protocol Buffers的東東,Google開發的,也可以用。出於好奇,試了下。Java那頭用Maven編譯,C#這頭,可用MSBuild編譯,但需要做些配置。

假設工程中有這些檔案:test.proto,testClient.cs(調用gRPC用戶端),希望按一下F5就編譯好,怎麼做呢?

1. 下載和安裝NuGet包:Grpc, Grpc.Tools, Grpc.Tools.MSBuild.Unofficial, Google.Protobuf (注意,還有個Google.ProtocolBuffers的包,不要混起來)

2. 修改Grpc.Tools.MsBuild.Unofficial.props檔案,把GrpcToolsVersion的值改成實際使用的值(目前最新版是1.15.0)

3. 修改Grpc.Tools.MsBuild.Unofficial.targets檔案

1)把_GrpcOutputFolder的值改為$(IntermediateOutputPath)  當然,改成其他值也行,但是若目錄不存在需要增加一個建目錄的過程,比較麻煩。$(IntermediateOutputPath)的位置是obj\Debug,系統預設就有了,比較方便,放在這個地方也比較合適

2)把GrpcToolsPath的值改為$(MSBuildThisFileDirectory)..\..\grpc.tools.$(GrpcToolsVersion)\tools\,原來的路徑不對,編譯時間會報錯。

3)將 <Target Name="GenerateGrpcFiles" 後面的屬性BeforeTargets的值改成PrepareForBuild

4. 修改工程檔案,假設檔案名稱為testGRPC.csproj:

1)將

<Import Project="..\packages\Grpc.Tools.MsBuild.Unofficial.1.0.51\build\Grpc.Tools.MsBuild.Unofficial.targets"  Condition="Exists(‘..\packages\Grpc.Tools.MsBuild.Unofficial.1.0.51\build\Grpc.Tools.MsBuild.Unofficial.targets‘)" /> 這一行移到

<Import Project="..\packages\Grpc.Core.1.15.0\build\net45\Grpc.Core.targets" Condition="Exists(‘..\packages\Grpc.Core.1.15.0\build\net45\Grpc.Core.targets‘)" />的後面一行

2)將<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />移到最後一個<Target>的後面一行

現在,按F5,就會一步編譯好。

 

Visual Studio自動編譯gRPC工程的設定

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.