Какая версия Google.Protobuf подходит для.netframework 4.0?
Когда я устанавливаю версию с 3.0.0 до 3.5.1, появляется сообщение об ошибке, как показано ниже:
Install-Package: Не удалось установить пакет "Google.Protobuf 3.5.1". Вы пытаетесь установить этот пакет в проект, который нацелен на ".NETFramework,Version=v4.0", но пакет не содержит никаких ссылок на сборки или файлов содержимого, совместимых с этой платформой. Для получения дополнительной информации свяжитесь с автором пакета. В строке:1 символ:1 + Install-Package Google.Protobuf -Version 3.5.1 -Проект 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 я могу использовать, очень благодарен за любую помощь.
1 ответ
Похоже, что официальные пакеты Google предназначены для.NET 4.5 (и.NET Standard) - и никогда не предназначались для чего-либо ниже, чем.NET 4.5. Для этого может быть техническая причина, но это может быть просто тестирование, удобство и т. Д. Поэтому один из вариантов - просто клонировать его локально и попробовать изменить целевую среду: посмотреть, что ломается.
В качестве альтернативы, если вы не привязаны к этой реализации: protobuf-net предназначается для всех версий (ну, не совсем - я окончательно отказался от.NET 1.1). API работает по-другому, но он все равно должен иметь то, что вам нужно, включая.proto to C# codegen ( https://protogen.marcgravell.com/ - это самый простой способ сделать это; на странице также есть загрузка для командной строки. инструмент, который имеет больше возможностей).