У меня есть решение со многими проектами, около дюжины из которых имеют установленный Octopack, и пакеты создаются правильно, когда TeamCity запускает msbuild /p:RunOctoPack=true /p:OctoPackEnforceAddingFiles=true
. Как вы, наверное, поняли по флагу p:/OctoPackEnforceAddingFiles
, каждый проект с установленным Octopack также имеет файл nuspec.
Проблема заключается в том, что Octopack не учитывает заполнители nuspec, как указано в https://docs.microsoft.com/en-gb/nuget/reference/nuspec#replacement-tokens. Прямо сейчас мы хотим использовать $id$
, которое должно совпадать с именем сборки упаковываемого проекта. Вместо этого, когда мы запускаем Octpack, этот токен $id$
пуст.
Я могу видеть на https://octopus.com/docs/packaging-applications/creating-packages/nuget-packages/using-octopack#UsingOctoPack-Replacementtokens, что Octopack позволяет вручную переопределять эти токены, но это не помогает мне, так как Octopack запущен на решение, но мне нужно название проекта, который упаковывается.
Что я могу сделать, чтобы обойти эту проблему? На данный момент у нас, по сути, есть имя проекта, жестко закодированное в файлах nuspec, но оно становится хрупким и громоздким, и мы хотели бы это исправить.