2014-06-05 33 views
0

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

<?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

你有一个额外的'。'在你的src路径中。它应该是“\ .Resources \”吗?还要检查.nupkg文件的内容,看它里面是否有文件。 –

+0

是的。是我的错。更新了代码。当使用此nuspec创建包时,它仅创建一个内容文件夹,而不是任何其他发布文件。 – sam

+0

您是否使用OctoPack? – SteveChapman

回答

0

如果您使用OctoPack,这是正常现象。引述documentation on GitHub

如果<files>部分存在,OctoPack不会尝试自动任何额外的文件添加到您的包,所以你需要明确了解哪些文件要包括。

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

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

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

更新

一种混合的方法是使用的MSBuild发布目标打造&网站发布到本地文件夹,(过滤掉所有的编译时文件喜欢。 cs源文件),放入其他文件,然后只需包含一个<file src="**/*.*" />以将根文件夹下的所有内容打包。需要使用根路径/ nuget.exe进行一些自定义,但它可能会使整个过程更整洁,维护也稍微少一点。

Useful information here这可能会帮助您开始。