【问题标题】:How to exclude a folder from a nuget package如何从 nuget 包中排除文件夹
【发布时间】:2013-01-05 07:58:29
【问题描述】:

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

【问题讨论】:

  • 您能否为我们描述一下您希望在包装中包含哪些部件?

标签: nuget nuget-package octopus-deploy


【解决方案1】:

我需要创建一个 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>

【讨论】:

  • 您是否需要为此使用 NuGet?我想知道Web Deploy package 是否更适合您要完成的工作。
  • 是的。我们需要使用章鱼部署,所以需要 nuget。
  • 我尝试使用此解决方案。但不幸的是,什么都没发生?
【解决方案2】:

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

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

【讨论】:

  • 这有很多副作用。
【解决方案3】:

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

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

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

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

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

【讨论】:

  • 你能更新这个答案吗?我在链接页面上没有看到“Web 应用程序发布”部分。我的具体问题是 bin\Roslyn 文件夹包含在 nupkg 中。我尝试使用发布配置文件并针对 csproj 运行 msbuild,但这不起作用: &$msbuildExe ..\trunk\WebUI\WebUI.csproj /p:DeployOnBuild=true /p:PublishProfile=local /p:RunOctoPack=真的
  • 它包含像 EntityFramework.dll 这样的文件,这些文件依赖于单独的 NuGet 包,而不是应该包含在我的 nupkg 文件中的文件。如何排除它们?
  • 这个问题不是为了建议。它明确用于从 nuget 包中排除文件夹。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-11
  • 2014-03-10
  • 2021-11-18
  • 2020-07-22
相关资源
最近更新 更多