dotnet build
и dotnet run
- это обе команды, которые действуют в отношении файла csproj, а не DLL или исполняемого файла. dotnet build
вызовет команду dotnet restore
, а затем построит проект. dotnet run
вызовет команду dotnet build
(это важно отметить в связи с вашей проблемой), а затем запустит полученную dll или exe.
То, что вы сейчас говорите, сделайте tnet вызовы dotnet build -c Test
и dotnet run
:
- очистка, восстановление, сборка (с использованием конфигурации «Тест»)
- очистка, восстановление, сборка, запуск (без указания конфигурации )
Вторая очистка очистит файлы, созданные первой сборкой, а затем вы снова выполните сборку как часть команды запуска, но без указанной тестовой конфигурации, что приведет к наблюдаемому поведению.
Вы можете изменить dotnet run
на dotnet run --no-build
, чтобы он предполагал, что сборка уже завершена, и просто предполагать, что файлы, которые должны были быть созданы, присутствуют и верны.
В качестве альтернативы, учитывая что ваш проект имеет OutputType
из Exe
, вы можете просто вызвать исполняемый файл, который создается командой сборки обычным способом в качестве второго шага. то есть с помощью команды example.exe
.
Если ваш OutputType
не был указан или был задан по умолчанию (Library
), тогда это приведет к созданию dll, а не exe, и вы можете запустить его с помощью dotnet
команда: dotnet example.dll
.
Полезное чтение по различным командам, а также общие свойства: