Почему облачная служба Azure в Octopus завершается с ошибкой: "Похоже, ваш пакет не содержит файлов пакета облачной службы Azure (.cspkg)".

У нас есть облачная служба Azure, которую развертывает Octopus Deploy. Он начал давать сбой с ошибкой "В вашем пакете отсутствуют файлы пакета облачной службы Azure (.cspkg)". Это странно, так как раньше он был успешным, и в этом проекте не было изменено ни одного кода.

Вот строки журнала, описывающие ошибку:

Verbose  | Invoking target script C:\Windows\system32\config\systemprofile\AppData\Local\Calamari.Azure\Temp\2a0a164b-5ce8-4840-82a6-1972fcb6a3d0\SwapAzureCloudServiceDeployment.ps1 with  parameters
Verbose  | Extracting package to: C:\Octopus\Work\20160716115609-9\staging
Verbose  | Extracted 0 files
Error    | Your package does not appear to contain any Azure Cloud Service package (.cspkg) files.

Этот же код используется для создания следующих строк журнала:

Verbose  | Invoking target script C:\Windows\system32\config\systemprofile\AppData\Local\Calamari.Azure\Temp\9008e8af-46e5-4d57-a5d6-4cac4e677ab5\SwapAzureCloudServiceDeployment.ps1
Verbose  | Extracting package to: C:\Octopus\Work\20160504231837-40
Verbose  | Extracted 4 files
Verbose  | Ensuring cloud-service-package is V20120315 format.
Verbose  | Package is V20120315 format.
Verbose  | Extracting Cloud Service package: 'C:\Octopus\Work\20160504231837-40\Transactions.cspkg'

Сервер Octopus и Tentacles имеют версию 3.3.10 в обоих случаях.

Пакет nuget доступен, и когда я загружаю его, содержимое остается тем же, за исключением дат сборки и идентификаторов.

Что могло измениться и вызвать сбой?

1 ответ

Решение

Причиной этого сбоя является Nuget 3.4.3. Кажется, это исправлено в 3.4.4+.

Упаковка, кажется, создает подпапку с пустым именем в zip, которую вы можете увидеть, если откроете ее в графическом интерфейсе, например 7zip. Просто извлекая его, вы помещаете содержимое этой пустой папки с именами в корень, так что оно скрыто. То, как Octopus извлекает пакет, похоже, пропускает эти файлы, а cspkg не обнаруживается, что приводит к сбою развертывания.

Неверный пакет с пустым именем папки

ПРИМЕЧАНИЕ: Nuget 3.4.4 был выпущен, но почему-то все еще отображается только в предварительной версии при использовании Install-Package Nuget.CommandLine, Это известная проблема, но я не уверен, почему она все еще предварительная.

Другие вопросы по тегам