所以我实际上试图将一个网站项目(不是网络应用程序,所以没有csproj文件)打包成一个准备好让Octopus使用的NuGet包,但是又一个又一个地碰到了一个砖墙。
我研究过使用OctoPack,但它不支持网站项目只支持Web应用程序项目。
我现在正试图找到一种方法将文件夹(在我的情况下是一个网站)添加到Nuget包中,但Nuget不通过命令行允许这样做吗?它还需要一个.csproj文件!
我还尝试过创建NuGet规范文件并将其传递到文件夹但不可能?
目前我可能不得不使用NuGet包浏览器,但我想编写脚本。
我已经看过这个问题,但似乎无法处理我的情景 Can I create a nuget package without a project file
所以有人知道如何通过命令行最好地将文件夹添加到NuGet包中吗??
答案 0 :(得分:39)
我不知道OctoPack,但是使用nuget.exe,打包分两步完成:
nuget spec
)。nuget pack
。由于你没有.csproj,你手动创建.nuspec(或使用像NuGet Package Explorer这样的GUI工具)。
您可以在Nuspec Reference中阅读有关如何创建.nuspec文件的所有内容,特别是有关Specifying Files to Include in the Package的部分。
如果你想在包中包含一个文件夹(递归?),你需要在XML中添加这样的东西:
<files>
<file src="bin\Release\**\*.*" target="content" />
</files>
这将获取bin\Release
文件夹的所有文件和(递归)子文件夹,并将它们放在NuGet包的content
文件夹中。
我不知道OctopusDeploy在软件包中的预期格式,但这是您在软件包中包含文件夹的方式。
编辑:OctoPack README中似乎有一些相关文档。