Protocol buffers 哪个版本的Google.Protobuf适合.netframework4.0?

Protocol buffers 哪个版本的Google.Protobuf适合.netframework4.0?,protocol-buffers,protobuf-csharp-port,Protocol Buffers,Protobuf Csharp Port,当我安装3.0.0到3.5.1版本时,错误消息如下: 安装程序包:无法安装程序包“Google.Protobuf 3.5.1”。您正试图将此软件包安装到以“.NETFramework,版本=v4.0”为目标的项目中,但该软件包未安装 包含与该框架兼容的任何程序集引用或内容文件。有关更多信息,请联系软件包作者。 第1行字符:1 +安装包Google.Protobuf-Version 3.5.1-projecthdexamine + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

当我安装3.0.0到3.5.1版本时,错误消息如下:

安装程序包:无法安装程序包“Google.Protobuf 3.5.1”。您正试图将此软件包安装到以“.NETFramework,版本=v4.0”为目标的项目中,但该软件包未安装 包含与该框架兼容的任何程序集引用或内容文件。有关更多信息,请联系软件包作者。 第1行字符:1 +安装包Google.Protobuf-Version 3.5.1-projecthdexamine + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +CategoryInfo:NotSpecified:(:)[Install Package],InvalidOperationException +FullyQualifiedErrorId:NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand

然后我参考nuget软件包站点,它的依赖项包括NETStandard.Library(>=1.6.1),在我成功安装NETStandard.Library 2.0.1之后,但错误消息仍然相同


我的应用程序基于.net framework 4.0,想知道我可以使用哪个版本的Google.Protobuf,非常感谢您的帮助。

它看起来像是官方的Google软件包target.net 4.5(和.net标准)从未针对低于.net 4.5的任何东西。这可能有一个技术原因,但可能只是测试、方便等。因此,一个选择是简单地在本地克隆它并尝试更改目标框架:看看有什么中断


或者,如果您不依赖于该实现:ProtobufNet以所有版本为目标(不完全如此,我最终放弃了.NET1.1)。API的工作方式有所不同,但它仍然应该具备您所需要的功能,包括.proto到C#codegen(这是最简单的方法;页面上还有命令行工具的下载,它有更多的功能)。

谢谢Marc,我使用它来生成C#代码,但是我使用的Visual Studio 2013无法成功生成代码,我认为代码使用了c#6的特性(例如代码中的=>)。如何修复代码以使用vs 2013?谢谢。@JamesHao该工具具有生成下层c#的功能。我现在不在电脑旁,但命令行选项是
+langver=…
(在--help中有一些示例)。它也可以通过.proto文件中的自定义属性指定。所以:如果你不止一次地需要它:值得让这个工具为你做这件事。