Я пытаюсь разработать скрипт сборки для проекта dotnet core 2.0, который выполняет следующие действия
- Очищает выходные каталоги
- Создает решение с -o bin \ Publish
- Запускает юнит-тесты с помощью dotnet vstest
- Создает пакет Nuget с пакетом dotnet
Поскольку я знаю, что исходный код был собран и протестирован на шагах 1-3, я не хочу перестраивать свой код для пакета nuget, поэтому я указываю --no-build и --no-restore
Трудность, с которой я сталкиваюсь, заключается в том, что при создании пакета, поскольку я не собираю, а выходной каталог установлен как bin \ Publish - команда pack ищет элементы в каталоге bin \ Debug.
Есть ли способ установить команду dotnet pack на знать где искать уже скомпилированные объекты?
Вот пример моего скрипта сборки
dotnet clean ..\MySolution.sln -o bin/Publish/
dotnet build ..\MySolution.sln /p:Configuration=Release -o bin/Publish/
dotnet vstest ..\MySolution.UnitTests\bin\Publish\MySolution.UnitTests.dll
dotnet pack --no-build --no-restore ..\MySolution.ConsoleApp\MySolution.csproj -o bin\Publish\Nuget\
....
error : The file 'D:\MySolution.ConsoleApp\bin\Debug\netcoreapp2.0\MySolution.ConsoleApp.runtimeconfig.json' to be packed was not found on disk
Согласно Документам Microsoft по пакету dotnet
"По умолчанию dotnet pack сначала строит проект. Если вы хотите
чтобы избежать этого, передайте опцию --no-build. Это часто полезно
в сценариях построения непрерывной интеграции (CI), в которых вы знаете код
был ранее построен. "
Так что я надеюсь, что это возможно, и я упускаю что-то очевидное. Любая помощь будет оценена.