Kye
Kye

Reputation: 6239

How to exclude a folder from a nuget package

I'm using Octopack / Nuspec file to build my nuget package.

I would like to exclude certain folders which exist in the project. e.g. the "obj" file. I've been trying to get the exclude tag to work, but haven't had any luck. The nuget file builds, but the folder is still there.

Sadly, all the examples on the net specific file types and not folder.

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
  <metadata>
    <id>Foo</id>
    <title>Foo</title>
    <version>$version$</version>
    <authors>NA</authors>
    <owners>NA</owners>
    <licenseUrl>http://Foo</licenseUrl>
    <projectUrl>http://Foo</projectUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Foo</description>
    <releaseNotes>NA</releaseNotes>
  </metadata>
  <files>
    <file src="obj\**\*.*" exclude="*.*" />
  </files>
</package>

Upvotes: 26

Views: 34992

Answers (3)

Kye
Kye

Reputation: 6239

I needed to create a WebApplication, but deploy it as a standard ASP.NET website using "CodeFile" attributes.

This was basically to update a page in the standard ADFS login site.

<files>
  <file src="**" exclude="**\*.dll;**\*.designer.cs;**\*.csproj;**\*.pdb;**\*.user;**\*.vspscc;bin\*.cs;bin\*.aspx;bin\*.config;bin\*.asax;bin\*.pubxml" />
</files>

Upvotes: 40

KShan
KShan

Reputation: 611

To directly answer the posters question, if you want to exclude only the obj folder from a Nuget package use the following in your nuspec xml

<files>
    <file src="*\**" target="\" exclude="obj\**\*.*"/>
</files>

Upvotes: 11

Paul Stovell
Paul Stovell

Reputation: 32715

Depending on the project you are building, you shouldn't need to exclude anything.

If you are building a Windows Service/Console application, OctoPack should only package your bin\release directory.

If you are building a web application, you should use a 'publish' command to have MSBuild sent the binaries and content files to a temporary folder, and OctoPack will package that. This way your obj folders and C# files won't be packaged.

For information on how to do this, please see the section on Web Application Publishing at:

http://octopusdeploy.com/documentation/packaging/octopack

Upvotes: 1

Related Questions