В программе, над которой я сейчас работаю, все содержится в одном проекте. Для сравнительного анализа я изменил свой файл проекта, чтобы пакет BenchmarkDotnet и контрольные исходные файлы были включены только при составлении в конфигурации Benchmarks Build. Проблема в том, что ManualConfig автоматически добавляет задание, которое, кажется, невозможно удалить из того, что я могу найти в документации. Эта задача требует, чтобы программа была запущена в рамках конфигурации «Выпуск» , что просто невозможно при моей текущей настройке. Мой текущий код заключается в следующем: < /p>
ManualConfig benchmark_config = ManualConfig.CreateEmpty();
benchmark_config.AddColumnProvider(DefaultColumnProviders.Instance);
benchmark_config.AddLogger(ConsoleLogger.Default);
benchmark_config.AddExporter(DefaultExporters.JsonFull);
benchmark_config.AddJob(Job.Default.WithCustomBuildConfiguration("Benchmarks"));
BenchmarkSwitcher
.FromAssembly(typeof(Program).Assembly)
.Run(args, benchmark_config);
Мое пользовательское задание запускается, как и ожидалось, но все разрывается, как только DefaultJob запускается. BenchmarkDotnet напечатает ошибку, и Intellisense ошибка и Visual Studio запутывается, пока я вручную перезагружаю проект. Можно ли полностью удалить или хотя бы пропустить/отключить defaultjob ? Если нет, то как можно было бы реализовать Iconfig , чтобы избежать DefaultJob добавлено? Все, что я делаю, это исключаю ссылку на пакет BenchmarkDotnet и код, который полагается на него, если проект не будет составлен с использованием контрольной конфигурации Build.
Exe
net9.0
enable
enable
x64
Debug;Release;Benchmarks
true
Подробнее здесь: https://stackoverflow.com/questions/796 ... defaultjob