Viv*_*vit 13 .net c# assemblies protocol-buffers protobuf-csharp-port
在我们的项目中,我们成功使用Google Protobuf for C++.现在需要编译相同的*.proto文件以在C#代码中使用它.我下载了最近的Protobuf版本3.0.0-alpha-3.它为C#提供了proto2格式的支持,这对我来说已经足够了.我可以成功构建我的*.proto文件并获得*.cs文件.但是,当我将生成的*.cs文件添加到我的C#项目并尝试构建时,我会收到类似这样的编译器错误:"The type or namespace name 'Google' could not be found in the global namespace (are you missing an assembly reference?)"这是发生错误的地方:
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: DiagramExport.proto
#pragma warning disable 1591, 0612, 3021
#region Designer generated code
using pb = global::Google.ProtocolBuffers;
using pbc = global::Google.ProtocolBuffers.Collections;
using pbd = global::Google.ProtocolBuffers.Descriptors;
Run Code Online (Sandbox Code Playgroud)
现在我在项目页面上的发布ZIP中找不到任何DLL等,我可以在C#项目中作为参考包含它.只有protoc.exe和一些*.proto文件.我的简单问题是:我从哪里获得这些装配?
(备注:我尝试按照README文件中的说明从源代码构建项目protobuf-csharp-3.0.0-alpha-3,但未能使用Visual Studio 2013 Update 4"开箱即用"构建它;我得到了一些编译器错误.)
Viv*_*vit 10
看完这个和这个文档页面,我发现有安装协议缓冲区NuGet包用于通过执行程序包管理器控制台执行以下命令我的项目的可能性:
Install-Package Google.ProtocolBuffers
Run Code Online (Sandbox Code Playgroud)
可以通过TOOLS - > NuGet包管理器 - >包管理器控制台在Visual Studio 2013中访问控制台.经理下载了这个包,我的项目中有两个引用"Google.ProtocolBuffers"和"Google.ProtocolBuffers.Serialization",这让编译器感到高兴.它现在完美!
小智 5
请查看此处的发行说明
在C#(Beta)部分,您会发现:
Breaking: Preconditions is renamed to ProtoPreconditions
Breaking: GeneratedCodeInfo is renamed to GeneratedClrTypeInfo
Run Code Online (Sandbox Code Playgroud)
所以它似乎protoc.exe与Grpc.Tools包一起产生"旧"代码.我protoc.exe用这个替换了它并重新编译(重新生成)修复问题的类.
| 归档时间: |
|
| 查看次数: |
10048 次 |
| 最近记录: |