Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
676 views
in Technique[技术] by (71.8m points)

nuget - How to add a folder to a nuspec file

So I'm actually trying to package up a web site project (not web application so no csproj file) into a NuGet package ready for Octopus to consume but am running into one brick wall after another..

I looked into using OctoPack but it doesn't support web site projects only web application projects.

I am now trying to find a way of adding a folder (in my case a web site) into a Nuget package but Nuget doesn't allow this via the command line does it? It also requires a .csproj file!

I've also tried trying to create the NuGet spec files and pass it in a folder but not possible?

For the moment I may have to use the NuGet package explorer but I want to script this.

I've looked at this question but doesn't seem to handle my scenario Can I create a nuget package without a project file

So does anyone know how to best add a folder to a NuGet package via the command line!?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I don't know OctoPack, but with nuget.exe, packaging is done in two steps:

  1. Either create a .nuspec manually, or generate one from a .csproj or existing assembly (see nuget spec in the docs).
  2. Call nuget pack with the .nuspec created in the previous step as a parameter.

Since you don't have a .csproj lying around, you're stuck creating the .nuspec manually (or with a GUI tool like NuGet Package Explorer).

You can read all about how to create a .nuspec file in the Nuspec Reference, specifically the section about Specifying Files to Include in the Package.

If you want to include a folder (recursively?) in the package, you need to add something like this to the XML:

<files>
  <file src="binRelease***.*" target="content" /> 
</files>

This will take all the files and (recursive) sub-folders of the binRelease folder and put them in the content folder of the NuGet package.

I have no idea what format OctopusDeploy expects in the packages, but that's how you include a folder in the package.

EDIT: There seems to be some documentation on this in the OctoPack README.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...