Я ожидаю, что при выполнении следующих двух команд последняя не будет запускать новую сборку:
dotnet build solution.sln --configuration Release
dotnet pack solution.sln --configuration Release --no-restore --no-build
Однако, поскольку .NET Core SDK 3.0.100 вторая команда всегда дает мне сбой со следующей ошибкой:
C:\Program Files\dotnet\sdk\3.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.targets(133,5):
error NETSDK1085: The 'NoBuild' property was set to true but the 'Build' target was invoked.
Полагаю, хорошо, что сборка не удалась, поскольку я действительно явно требовалэто не строить. Но почему сборка запускается несмотря на --no-build
?
То, что я на самом деле пытаюсь сделать, это подписать код (сертификат, не строгое именование) всех собранных сборок за один раз, прежде чем упаковывать всеих в свои пакеты NuGet:
- Сборка всех проектов решения для всех целевых структур
- Кодирование всех сборок за один раз (поэтому мне не нужно вводитьфраза-пароль для каждой отдельной сборки)
- Упаковать все проекты решения в пакеты NuGet
Поэтому также важно, чтобы pack
не запускал новую сборку и не перезаписывал подписанную подпись. сборки.
Отсюда мой вопрос:
- Что могло бы вызвать сборку с самого начала?
- Или, как узнать, что вызывает сборку? на первом месте?