如何将文件夹添加到nuspec文件

Lee*_*one 25 nuget octopus-deploy nuget-spec

所以我实际上正在尝试将一个网站项目(不是Web应用程序,所以没有csproj文件)打包成一个准备好让Octopus使用的NuGet包,但是我正在一个又一个的砖墙上运行.

我研究过使用OctoPack,但它不支持网站项目只有Web应用程序项目.

我现在正试图找到一种方法将文件夹(在我的情况下是一个网站)添加到Nuget包中,但Nuget不允许通过命令行这样做吗?它还需要一个.csproj文件!

我也尝试过创建NuGet规范文件并将其传递到文件夹但不可能?

目前我可能不得不使用NuGet包浏览器,但我想编写脚本.

我已经看过这个问题,但似乎没有处理我的场景我 可以创建一个没有项目文件的nuget包

那么有谁知道如何通过命令行最好地将文件夹添加到NuGet包!

khe*_*ang 41

我不知道OctoPack,但是使用nuget.exe,打包分两步完成:

  1. 手动创建.nu​​spec,或产生一个从一个或.csproj的现有部件(请参阅nuget spec的文档).
  2. 调用nuget pack在上一步中作为一个参数创建的.nu​​spec.

由于您没有.csproj,因此您无法手动创建.nuspec(或使用NuGet Package Explorer等GUI工具).

您可以在Nuspec Reference中阅读有关如何创建.nuspec文件的所有内容,特别是有关指定要包含在包中的文件的部分.

如果要在包中包含一个文件夹(递归?),则需要在XML中添加以下内容:

<files>
  <file src="bin\Release\**\*.*" target="content" /> 
</files>
Run Code Online (Sandbox Code Playgroud)

这将获取文件夹的所有文件和(递归)子文件bin\Release夹,并将它们放在contentNuGet包的文件夹中.

我不知道OctopusDeploy在包中期望的格式,但这就是你在包中包含一个文件夹的方式.

编辑:在OctoPack自述文件中似乎有一些相关的文档.

  • 如果你没有指定一个目标(`content`),它会把所有内容放在根目录中.内容是NuGet包中的[特殊文件夹](http://docs.nuget.org/docs/reference/nuspec-reference#Content_Files). (3认同)