如何从nuget包中排除文件夹

时间:2013-01-22 06:12:56

标签: nuget nuget-package octopus-deploy

我正在使用Octopack / Nuspec文件来构建我的nuget包。

我想排除项目中存在的某些文件夹。例如“obj”文件。我一直试图让排除标签工作,但没有任何运气。 nuget文件构建,但文件夹仍在那里。

可悲的是,网络特定文件类型的所有示例都没有文件夹。

<?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 个答案:

答案 0 :(得分:21)

我需要创建一个WebApplicatoin,但是使用“CodeFile”属性将其部署为标准的ASP.NET网站。

这基本上是为了更新标准ADFS登录站点中的页面。

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

答案 1 :(得分:10)

要直接回答海报问题,如果您只想从Nuget包中排除 obj 文件夹,请在您的nuspec xml中使用以下内容

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

答案 2 :(得分:1)

根据您正在构建的项目,您不需要排除任何内容。

如果您正在构建Windows服务/控制台应用程序,OctoPack应该只打包您的bin\release目录。

如果要构建Web应用程序,则应使用“发布”命令让MSBuild将二进制文件和内容文件发送到临时文件夹,OctoPack将打包它。这样,您的obj文件夹和C#文件将不会打包。

有关如何执行此操作的信息,请参阅Web应用程序发布部分:

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