Nuget包包括其他文件夹
-
26-12-2019 - |
题
我正在使用Teamcity和章鱼部署我的软件包。我正在使用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
. 解决方案
如果您使用的octopack ,则预期此行为。引用关于github的文档:
如果存在生成的
<files>
部分,octopack将无法尝试自动将任何额外的文件添加到您的包中,因此您需要明确地了解要包含的文件。
如果您走这条路线,您需要指定NUSPEC的<files>
部分中包含的所有其他文件。
如果遵循创建包中描述的约定,则不必在.nuspec文件中明确指定文件列表。请注意,如果指定任何文件,则忽略约定,并且只包含.nuspec文件中列出的文件。
更新
我已经看到的一种混合方法是使用MSBuild发布目标来构建并发布网站到本地文件夹,(过滤掉所有编译时文件,如.cs源代码),下降在其他文件中,然后只需包含一个生成的icetagcode来将所有内容包装在根本发布文件夹下。需要一点使用root路径/ nuget.exe进行自定义,但它可能会使该过程有点儿闹钟,略少维护。
有用的信息在这里那可能帮助您开始。
不隶属于 StackOverflow