0

我们有一个由 Octopus Deploy 部署的 Azure 云服务。它开始失败并出现错误“您的包似乎不包含任何 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'

在这两种情况下,八达通服务器和触手都是 3.3.10 版本。

nuget 包可用,当我下载提取它们时,内容是相同的,除了构建日期和标识符。

什么可能会改变并导致失败?

4

1 回答 1

0

此失败的原因是 Nuget 3.4.3。它似乎已在3.4.4+中修复。

包装似乎在 zip 中创建了一个具有空白名称的子文件夹,如果您在 7zip 之类的 GUI 中打开它,您可以看到它。只是解压它会将这个空白名称文件夹的内容放在根目录下,所以它被隐藏了。Octopus 提取包的方式似乎遗漏了这些文件,并且找不到 cspkg,导致部署失败。

包含空白文件夹名称的无效包

注意:Nuget 3.4.4 已经发布,但在使用Install-Package Nuget.CommandLine. 这是一个已知问题,不知道为什么它仍然是预发布的。

于 2016-07-17T00:53:32.583 回答