在我们的项目中,我们成功使用Google Protobuf for C ++。现在需要编译相同的* .proto文件以在C#代码中使用它。我下载了最近的Protobuf version 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;
现在我在项目页面上的发布ZIP中找不到任何DLL等,我可以在C#项目中作为参考包含它。只有protoc.exe和一些* .proto文件。我的简单问题是:我从哪里获得这些装配?
(注意:我尝试按照README文件中的说明从源代码构建项目protobuf-csharp-3.0.0-alpha-3,但未能使用Visual Studio 2013 Update 4"开箱即用&#34 ;;我得到了许多编译器错误。)
答案 0 :(得分:9)
在阅读this和this文档页面后,我发现通过在程序包管理器控制台中执行以下命令,可以为我的项目安装Protocol Buffers NuGet包:
Install-Package Google.ProtocolBuffers
可以通过TOOLS在Visual Studio 2013中访问控制台 - > NuGet包管理器 - >包管理器控制台。经理下载了这个包,我的项目中有两个引用“Google.ProtocolBuffers”和“Google.ProtocolBuffers.Serialization”,这让编译器感到高兴。它现在完美无缺!
答案 1 :(得分:5)