1

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

安装包:无法安装包“Google.Protobuf 3.5.1”。您正在尝试将此包安装到以“.NETFramework,Version=v4.0”为目标的项目中,但该包不包含任何与该框架兼容的程序集引用或内容文件。有关详细信息,请联系包作者。在 line:1 char:1 + Install-Package Google.Protobuf -Version 3.5.1 -Project HDExamine + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 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,非常感谢您的帮助。

4

1 回答 1

2

看起来官方的 Google 软件包针对 .NET 4.5(和 .NET Standard) - 并且从未针对低于 .NET 4.5 的任何内容。这可能有技术原因,但可能只是测试、方便等。所以一种选择是简单地在本地克隆它并尝试更改目标框架:看看有什么问题。

或者,如果您不依赖于该实现:protobuf-net 针对所有版本(嗯,不完全是 - 我最终放弃了 .NET 1.1)。API 的工作方式不同,但它仍然应该有你需要的东西,包括 .proto 到 C# 代码生成(https://protogen.marcgravell.com是最简单的方法;在页面上还有命令行的下载工具,它有更多的功能)。

于 2018-03-30T16:33:52.970 回答