我正在使用teamcity和章鱼部署我的软件包。我正在使用teamcity创建包,然后使用Octopus部署到不同的环境。我有一个Resources文件夹,需要作为teamcity中的单独步骤进行复制。现在我希望该文件夹包含在包中,以便我可以将该包部署到其他域上的远程服务器。我已经定义了以下文件,将resources文件夹包含在主项目的内容文件夹中。但是发生的事情是它只是在目的地中创建一个文件夹,但是不要在项目中复制其他文件。请指导,因为我想要的是在包中包含资源文件夹以及我的发布网站文件。我只是想将资源文件夹作为包的一部分。请指导
<?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
答案 0 :(得分:0)
如果您正在使用OctoPack ,则会出现此行为。引用documentation on GitHub:
如果
<files>
部分存在,则OctoPack不会尝试自动将任何额外文件添加到您的包中,因此您需要明确说明要包含哪些文件。
如果你走这条路线,你需要指定你想要包含在nuspec的<files>
部分中的所有其他文件。
如果您未使用OctoPack ,则适用类似的规则。见documentation on nuget.org
如果您遵循创建包中描述的约定,则不必在.nuspec文件中显式指定文件列表。请注意,如果指定任何文件,则会忽略约定,并且只有.nuspec文件中列出的文件包含在包中。
<强>更新强>
我曾经使用的一种混合方法是使用MSBuild Publish目标来构建&amp;将网站发布到本地文件夹,(过滤掉所有编译时文件,如.cs源代码),放入其他文件,然后只需包含一个<file src="**/*.*" />
来打包根发布文件夹下的所有内容。需要对根路径/ nuget.exe进行一些自定义,但这可能会使整个过程变得更整洁,维护更少。
Useful information here可能会帮助您入门。