前段时间研究一个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工程的设置的更多相关文章

  1. 使用 Visual Studio 2015 编译 QT 工程

    简单进行一下几步就可以了 1.下载源代码 qt-everywhere-opensource-src-5.6.0-alpha.7z .解压到 D:\ToolKits\5.6.0\src 目录下2.网站 ...

  2. 开发者说 | 使用Visual Studio Code编译、调试Apollo项目

    转载地址:https://mp.weixin.qq.com/s?__biz=MzI1NjkxOTMyNQ==&mid=2247484266&idx=1&sn=d6bcd4842 ...

  3. Windows下使用Visual Studio 2010编译ffmpeg全过程

    在visual studio 2010中调用ffmpeg http://blog.sina.com.cn/s/blog_4178f4bf01018wqh.html Windows下使用Visual S ...

  4. Cocos开发中Visual Studio下libcurl库开发环境设置

    我们介绍一下win32中Visual Studio下libcurl库开发环境设置.Cocos2d-x引擎其实已经带有为Win32下访问libcurl库,Cocos2d-x 3.x中libcurl库文件 ...

  5. Visual Studio下SQLite数据库开发环境设置

    由于我们介绍的内容都是基于微软的Visual Studio下开发的Win32平台,所以下边我们介绍Visual Studio下SQLite数据库开发环境设置.具体而言我们有两种方式可以在Visual ...

  6. Visual Studio 2012下Box2D开发环境设置

    Cocos2d-x 3.x默认情况下采用的物理引擎是Chipmunk,如果我们要使用Box2D引擎,需要进行一些设置和调整,而且不同的开发平台下这些设置也有所不同.由于本书在此之前介绍的都是基于微软的 ...

  7. Visual Studio 2013 编译 64 位 Python 的 C 扩展 (使用 PyObject 包装)

    对于 32 位 Python 的 C 扩展,以前用过 mingW32 编译, 但是 mingW32 不支持 64 位 Python 的 C 扩展编译,详情可见 stackoverflow,这位前辈的大 ...

  8. Visual Studio 2013编译Tesseract 3.04

    文章目录 去年时候使用了VS2008编译了Tesseract 3.02版本,主要是参考了一份官方文档,但是对于目前的最新版本并没有给出说明. 本文主要参考了Paul Vorbach的How to bu ...

  9. Visual Studio 中 Tab 转换为空格的设置

    Visual Studio 中 Tab 转换为空格的设置 在 Visual Studio 中写代码时,按 Tab 键,会自动进行缩进.有时希望实现按 Tab 键,出现多个空格的效果.Visual St ...

随机推荐

  1. Python API 操作Hadoop hdfs详解

    1:安装 由于是windows环境(linux其实也一样),只要有pip或者setup_install安装起来都是很方便的 >pip install hdfs 2:Client——创建集群连接 ...

  2. Spring Boot 太狠了,一次性发布了 3 个版本!

    Spring Boot 太狠了,北京时间 2020/07/25 今天一次性发布了三个主要版本,三条版本线同时更新: Spring Boot 2.3.2 Spring Boot 2.2.9 Spring ...

  3. 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU特性那些事(1)- 概览

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的基本特性. 恩智浦半导体于2017年开始推出的i.MX RT系列重新定义了MCU,其第一款芯片i. ...

  4. 一款功能简约到可怜的SQL 客户端

    你有一个思想,我有一个思想,我们交换后,一个人就有两个思想 If you can NOT explain it simply, you do NOT understand it well enough ...

  5. luogu P2973 [USACO10HOL]Driving Out the Piggies G 驱逐猪猡

    luogu LINK:驱逐猪猡 bzoj LINK:猪猪快跑 问题是在1时刻有个炸蛋在1号点 这个炸弹有p/q的概率爆炸 如果没有爆炸 那么会有1/di的概率选择一条边跳到另外一个点上重复这个过程. ...

  6. SpringXMl文件不提示的解决方法

    applicationContext.xml没有提示的解决方法 1.配置spring-beans-4.1.xsd文件 (1)找到spring-beans-4.1.xsd的文件的位置,例如: (2)复制 ...

  7. Python 为什么会有个奇怪的“...”对象?

    本文出自"Python为什么"系列,请查看全部文章 在写上一篇<Python 为什么要有 pass 语句?>时,我想到一种特别的写法,很多人会把它当成 pass 语句的 ...

  8. Idea风格的快捷键

    在使用IntelliJ IDEA时,是可以定义快捷键风格的:File --> Setting --> Keymap 里进行选择,因为我以前用Eclipse开发,后来换成Idea有2年的时间 ...

  9. asp.net core 3.1多种身份验证方案,cookie和jwt混合认证授权

    开发了一个公司内部系统,使用asp.net core 3.1.在开发用户认证授权使用的是简单的cookie认证方式,然后开发好了要写几个接口给其它系统调用数据.并且只是几个简单的接口不准备再重新部署一 ...

  10. 如何用Keil MDK5创建新项目

    1.安装相应软件 2.创建与Build项目 创建项目 下载与调试— ST-Link