22

我正在使用 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>
4

3 回答 3

33

我需要创建一个 WebApplication,但使用“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>
于 2013-01-23T00:21:03.963 回答
11

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

<files>
    <file src="*\**" target="\" exclude="obj\**\*.*"/>
</files>
于 2017-05-24T15:28:11.923 回答
1

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

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

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

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

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

于 2013-01-23T20:50:09.913 回答