22
votes

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>
3
Can you describe for us which pieces you want to include in the package?John Hoerr

3 Answers

33
votes

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>
11
votes

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>
1
votes

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