Не удается установить BenchmarkDotNet 0.10.2 в Visual Studio Ultimate 2012

Я пытаюсь установить пакет BenchmarkDotNet в совершенно новый пустой консольный проект в Visual Studio 2012 Ultimate и получаю этот журнал ошибок:

PM> Install-Package BenchmarkDotNet
Attempting to resolve dependency 'BenchmarkDotNet.Toolchains.Roslyn (≥ 0.10.2)'.
Attempting to resolve dependency 'BenchmarkDotNet.Core (≥ 0.10.2)'.
Attempting to resolve dependency 'System.Threading.Tasks.Extensions (≥ 4.0.0)'.
Attempting to resolve dependency 'Microsoft.CodeAnalysis.CSharp (≥ 1.3.2)'.
Attempting to resolve dependency 'Microsoft.CodeAnalysis.Common (= 1.3.2)'.
Attempting to resolve dependency 'System.Collections.Immutable (≥ 1.1.37)'.
Attempting to resolve dependency 'System.Reflection.Metadata (≥ 1.2.0)'.
Install-Package : 'System.Reflection.Metadata' already has a dependency defined for 'System.Collections.Immutable'.
At line:1 char:1
+ Install-Package BenchmarkDotNet
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Install-Package], InvalidOperationException
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand

BenchmarkDotNet выглядит так обманчиво просто... Но он просто не устанавливается для меня! Кто-нибудь сталкивался с этой проблемой или преодолел ее на Visual Studio 2012?

ПРИМЕЧАНИЕ. Он был установлен в сообществе Visual Studio 2015, но это не та версия, которую я могу использовать для реальной разработки.

2 ответа

Решение

Краткий ответ: вы можете установить BenchmarkDotNet только в VisualStudio 2015+. Visual Studio 2012 использует старую версию NuGet (2.x), которая не поддерживает некоторые современные пакеты. Одной из зависимостей BenchmarkDotNet является Roslyn ( https://www.nuget.org/packages/Microsoft.CodeAnalysis.CSharp/), для которого требуется NuGet 3.x+.

Ниже приведено связанное обсуждение минимально поддерживаемой версии Visual Studio в репозиториях BenchmarkDotNet и Roslyn:

Возможный обходной путь: вы можете создать новый консольный проект в VS2015/2017, установить BenchmarkDotNet и скопировать весь проект (с помощью packages папку) на ваш компьютер с VS2012.

Поиском по Google я только что нашел эту проблему на github, которая очень похожа на вашу.

Похоже, что вы не сможете интегрировать BenchmarkDotNet выше 0.9.7 в Visual Studio ниже 2015 года.

Вы должны попробовать 0.9.7, чтобы увидеть, соответствует ли он вашим потребностям.

https://github.com/dotnet/BenchmarkDotNet/issues/237

Другие вопросы по тегам