0

我正在使用 teamcity 和 octopus 部署我的包。我正在使用 teamcity 创建包,然后使用 Octopus 部署到不同的环境。我有一个 Resources 文件夹,需要将其作为 teamcity 中的一个单独步骤进行复制。现在我希望将该文件夹包含在包中,以便我可以将该包部署到其他域上的远程服务器。我已经定义了以下文件以将资源文件夹包含到主项目的内容文件夹中。但发生的事情是它只是在目标中创建一个文件夹,但不复制项目中的其他文件。请指导,因为我想要的只是将资源文件夹与我的发布网站文件一起包含在包中。我只希望资源文件夹成为包的一部分。请指导

 <?xml version="1.0" ?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
 <metadata>
<id>Services</id>
<version>1.0.0.0</version>
<authors></authors>
<owners></owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Services.nuspec build package</description>
<releaseNotes />
 </metadata>
 <files>
  <file src="..\Resources\**\*.*" target="Content\Resources" />
</files>
</package>

使用上述代码创建包后的包内容:-

 . _rels
 . package
 . content\resources 
 . [content_type
 . Services.nuspec
4

1 回答 1

0

如果您使用的是 OctoPack,则会出现这种行为。引用GitHub 上的文档

如果该<files>部分存在,OctoPack 将不会尝试自动将任何额外文件添加到您的包中,因此您需要明确说明要包含哪些文件。

如果你走这条路,你需要指定你想要包含在<files>nuspec 部分中的所有其他文件。

如果您不使用 OctoPack,则适用类似规则。请参阅nuget.org 上的文档

如果您遵循创建包中描述的约定,则不必在 .nuspec 文件中显式指定文件列表。请注意,如果您指定任何文件,则将忽略约定,并且仅 .nuspec 文件中列出的文件包含在包中。

更新

我见过的一种混合方法是使用 MSBuild Publish 目标来构建网站并将其发布到本地文件夹(过滤掉所有编译时文件,如 .cs 源),放入其他文件,然后简单地包括一个<file src="**/*.*" />以打包根发布文件夹下的所有内容。需要对根路径 / nuget.exe 进行一些自定义,但它可能会使该过程更加整洁,维护工作也稍微少一些。

此处的有用信息可能会帮助您入门。

于 2014-06-05T11:32:24.343 回答