NuGet Pack:忽略默认包含

2024-02-24

这与我通常读到的问题相反,即人们试图获取 NuGet 包中包含的文件。我试图stop文件被自动包含。

我正在创建一个预编译的 MVC 视图模板库(使用 RazorGenerator.Mvc),.less文件和 JavaScript 来根据需要支持这些文件。我们的想法是,这些是我们所有网站中的基本内容。

默认情况下,nuget pack包括标记为“构建操作”的任何文件:Content在您的项目中,任何新创建的视图,.less文件或脚本。似乎没有选项可以覆盖此行为。这里的一个相关问题提出了一个解决方案empty <files>中的节点.nuspec停止所有包含 https://stackoverflow.com/a/9121513,但我想包括some文件,仅是我选择的文件。

现在,作为权宜之计,我可以明确地将所有内容设置为不Content (using None相反),然后使用.nuspec文件。但是,如果另一个开发人员出现,例如我未来的自己,并且忘记了此步骤,那么新添加的文件将被复制到包中,然后在下次安装或更新期间复制到目标项目中。

I found OctoPack,并且一旦检测到,默认情况下将不包含任何内容<files>中的节点.nuspec,但我没有使用 TeamCity 中的任何其他内容,并且重写我的构建服务器脚本以了解如何调用 OctoPack 而不是 nuget pack,这对我来说并不是一个很好的选择。 OctoPack 也有局限性;必须手动列出依赖项,.nuspec 文件的替换标记必须在命令行上传递(而不是从AssemblyInfo.cs),而且该工具似乎并不是专门用于此用途的 - 他们甚至说“OctoPack 只能安装在您要部署的项目上 - 这意味着控制台应用程序项目、Windows 服务项目和 ASP .NET Web 应用程序。单元测试、类库和其他支持项目不会被选择。” (OctoPack 文档 http://docs.octopusdeploy.com/display/OD/Using+OctoPack%20(OctoPack%20documentation))

我尝试的下一个替代方案是使用msbuild简单地擦除内容组BeforeBuild event:

<Target Name="BeforeBuild">
    <ItemGroup>
      <Content Remove="**\*.*" />
      <None Include="**\*.*" />
    </ItemGroup>
  <Message Text="Content files: @(Content)" Importance="High" />
</Target>

该消息验证内容组为空,但是nuget pack似乎并不在意;无论如何它仍然包含所有文件。

有没有人成功创建了这样的包,而无需手动标记所有构建操作:None并且不使用 OctoPack?


看来如果你调用nuget pack MyProject.nuspec(而不是仅仅nuget pack,这将寻找.csproj and .nuspec),您可以获得所需的行为,尽管您仍然(与 OctoPack 一样)丢失令牌替换和自动依赖项。所以这不是一个完美的解决方案,就像这样--no-default-content,但它可以很好地完成工作。

nuget pack MyProject.nuspec -Properties version={XYZ}(其中 XYZ 由构建服务器填写)至少可以让我确保版本号也正确递增。例如,我可以设置.nuspec

<version>1.1.0.$version$</version>并仅使用 SVN 修订版作为最后一部分。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NuGet Pack:忽略默认包含 的相关文章

  • 为什么 64 位 MSBuild 加载 32 位扩展?

    我正在尝试在 64 位计算机上使用 MSBuild v4 0 构建一个项目 由于某种原因 MSBuild 正在尝试加载 32 位扩展 但我不明白为什么 为了演示该问题 我已将问题减少到最小 使用以下 MSBuild 项目文件
  • 为什么 MSTest.TestAdapter 将其 DLL 添加到我的 NuGet 包中?

    我有带有一些自定义测试实用程序的 NuGet 包 它的项目正在引用MSTest TestFramework and MSTest TestAdapterNuGet 包和相应的依赖项在 nuspec 文件中指定 Files 部分仅指定要添加的
  • 有没有一种简单的方法可以让 Visual Studio 2015 使用特定的 ToolsVersion?

    使用特定版本构建项目或解决方案时msbuild我可以使用以下命令选择早期的 net 工具链 toolsversion or tv switch C Program Files x86 MSBuild 14 0 bin msbuild tv
  • TeamCity:如何告诉 MSBuild 考虑发布配置文件参数?

    当我想使用发布配置文件编译我的项目时 我使用 MSBuild 步骤进行 TeamCity 构建配置 我的发布配置文件位于MyProject Properties PublishProfiles profile pubxml 我的配置文件 p
  • 在哪里可以找到 Microsoft.Build.Utilities.v3.5

    如何获取 Microsoft Build Utilities v3 5 我正在使用 StyleCop 4 7 Stylecop dll 中的 StyleCop msbuild 任务似乎依赖于 Microsoft Build Utilitie
  • MSBuild 中 ProjectReference 的配置

    是否可以在 MSBuild 中设置 ProjectReference 的配置 设想 我有一个构建脚本 网络部署 它有许多配置 其中唯一的区别与它们的部署方式有关 而不是其自身的构建方式 我不想维护作为部署过程的一部分构建的解决方案 项目的配
  • 如何使用 YUI Compressor.Net MSBuild 任务 2.3.0.0

    我尝试在网上搜索此问题的解决方案 但似乎很不清楚 听起来人们正在看到这一点 但解决方案似乎对我不起作用 我已从 NuGet 下载并安装 YUICompressor NET MSBuild 2 3 0 0 到我的项目中 我创建了一个 MSBu
  • 如何在 MSBuild 中的 Exec 命令中转义引号

    我正在尝试构建一个 MSBuild 脚本 将网络驱动器映射到脚本中的驱动器号 但不幸的是目标文件夹的路径包含嵌入的空格 嵌入的空格导致映射失败 我不知道是否可以转义路径周围的引号 我尝试过双引号 但 MSBuild 不喜欢它 要么是 Win
  • .NET 4.0 构建服务器引用程序集警告 MSB3644 [重复]

    这个问题在这里已经有答案了 我的构建服务器上出现了一堆错误 C WINDOWS Microsoft NET Framework v4 0 30319 Microsoft Common targets 847 9 警告MSB3644 找不到框
  • 如何从 nuget 包中排除子目录和内容

    所以我有一个网站正在尝试打包用于 Octopus Deploy 我有以下文件夹结构 Web Views WantThis Dontwantthis WantThis1 WantThis2 lots more Scripts 我试图排除 Do
  • 未构建 csproj 时抑制 AfterBuild 目标

    我在 MSBuild 中有一个构建后目标来复制一些构建输出 这是 linkedin 作为对AfterBuild目标 暴露于Microsoft CSharp targets
  • 从命令行发布 Azure 项目

    我有一个 Azure Web 角色项目 我可以使用 Visual Studio 的内置向导成功发布它 但我们希望自动化该过程 如何使用 MSbuild 或任何其他命令行工具发布 Azure WebRole 您可能还想创建一个控制台应用程序
  • 使用包含本机 DLL 的 nuget 包时发出警告

    我正在构建一个 ASP NET Core Web API 应用程序 它使用 NET Standard 2 0 库来包装一些 C C 本机库 本机库内置于特定于平台的 Win32 dll Linux so 和 MacOS dylib 等中 并
  • 通过 TFS 构建服务执行时 MSBuild 找不到引用

    我有一个参考 Telerik 程序集的解决方案 引用的版本已安装在构建服务器上 问题是 持续集成构建总是成功的 直到我升级解决方案和构建服务器上的 Telerik 程序集 现在构建无法提供经典的 无法解析此引用 我检查了我的解决方案 一切都
  • 通过命令行的 MSbuild 包不包括我的所有程序集

    我正在尝试设置一个部署脚本来发布我们的网站 而不是必须打开 VS 来进行部署 发布 当我通过 VS 进行发布时 它将正确包含所有引用的程序集 但是当我通过命令行进行发布时 它不会 我对我所缺少的东西感到迷失 我的 MSBuild 命令是 m
  • 使用 dotnet pack 包含所有依赖项

    有什么办法可以强制dotnet pack包含所有引用的程序集 project json 中的所有依赖项 我相信这是相关的 https github com dotnet cli issues 1290 https github com do
  • 管理多个解决方案中存在的 C# 项目的 Nuget 包

    我现在正处于这样的阶段重构疯狂一个有很多的大项目遗留和不稳定的模块 我决定拆分解决方案目前 所有项目 大约有 20 个 而且由于下个月肯定会出现单元测试项目 还会有更多 链接在一起 使其更加独立和细化 通过这种方法 有一些模块 例如需要在多
  • 如何使用 MSBuild 更改 AssemblyProduct、AssemblyTitle?

    我有一个 MSBuild 脚本 它编译我现有的解决方案 但我想更改其中一个项目的一些属性within编译时的解决方案 包括但不限于AssemblyProduct和AssemblyTitle 这是我的构建脚本的片段
  • 是否可以从 nuget powershell 设置项目的输出路径属性?

    我想从 nuget powershell 控制台设置 Visual Studio 项目属性 输出路径 怎么可能呢 我已经发现一篇博文 http weblogs asp net soever archive 2011 05 15 set th
  • 使用 MSBuild Web 部署到服务器

    我在 VS 2012 项目中设置了发布配置文件 当我在 VS 中右键单击该项目 选择 发布 并单击 发布 按钮时 它会使用 发布配置文件 中提供的设置将项目发布到服务器 当我使用 msbuild 和命令行时 使用以下语法 msbuild e

随机推荐

  • 如何使用pandas加速数据加载?

    我正在使用 pandas 和 Jupiter 笔记本 我正在读取 700MB 的 CSV 文件 加载需要 69 秒 出于测试目的 这是可以接受的 因为我只需要加载它一次 并且它在笔记本实例的持续时间内保留在内存中 pd read csv p
  • 找到第三点

    我有2分P1 and P2 我需要找到P3 为了使 所有点都在同一条线上 P3应该在距离d来自P2 远离P1 I started a complicated system apparently hardly to resolve PS 矢量
  • “克隆”索引映射

    我有一个索引 我将重新索引它 目前我想创建一个新索引 它应该包含与原始索引中完全相同的映射 我有这个 var srcMappings client GetMapping new GetMappingRequest Indices sourc
  • 找出所有可能的组合

    我之前问过这个问题 但涉及另一种编程语言 假设我有几个词根 前缀和后缀 roots car insurance auto insurance prefix cheap budget suffix quote quotes Python 中是
  • WPF 打印多页预览

    我对这个主题了解得越多 我理解的就越少 所以如果下面的内容看起来完全不合时宜 请提前道歉 我有一个包含流程文档的用户控件 具有相应视图模型的视图 目的是将其发送到预览窗口 用户可以在其中查看文档并打印它 我从以下示例中提取了一些代码http
  • 如何在用户行走时跟踪 GPS 坐标,来自 iOS 平台的 xamarin.forms

    我刚刚经历过这个link http developer xamarin com recipes ios multitasking track significant location change 当用户使用 xamarin forms 应
  • 在 JPanel 或 JLabel 中调整图像大小并显示,而不会损失质量

    我正在开发一个java程序来使用网络摄像头在注册时捕获员工图像 我可以毫无问题地获取图片 并将其保存在我的 C 驱动器中 但在检索图像时 标签上仅显示图像的一部分 有没有办法在保存之前调整 JPEG 的大小 或者在显示之前 就像在不损失质量
  • Clojure:跨列表的复杂迭代?

    我想要一个数字 20 和一个清单 1 2 3 4 5 6 7 8 9 10 并返回一个集合 其中原始列表中的每个值包含两个值 原始值与该值除 20 时的余数配对 如果原始值以某种方式与余数相关 那就太好了 这样我就可以轻松检索产生特定余数的
  • 从 directshow 获取 iplImage 或 Mat 到 opencv

    由于使用 c 和 opencv 时很难更改相机的分辨率 因此我不得不将我的眼动追踪软件改用 directshow Directshow 对我来说很陌生 很难理解所有内容 但我发现这个很好的例子非常适合捕获和查看网络摄像头 http www
  • JVisualVM 内存采样:不支持远程应用程序

    我正在尝试在 Red Hat Linux 中使用 JVisualVM 监视远程 tomcat 进程 CPU 采样工作正常 但内存采样选项卡被禁用 它说 内存采样 不可用 不支持远程应用程序 进程的命令行参数 Djavac source 1
  • 如何在 aspx 页面中包含 adovbs.inc 文件?

    我正在将 ASP 经典页面转换为 ASP NET 将扩展名为 inc 的文件包含到 aspx 页面的正确方法是什么 我注意到 每次我将包含指向 inc 文件的 include 指令的页面之一更改为 aspx 时 我都会从这些 inc 文件中
  • 如何在 C++ 中跟踪 BFS 深度

    我想对二维数组进行BFS 每个单元格可以表示为pair
  • PHP bcompiler 编码的代码有多安全?

    我很感兴趣是否有人确切知道 PHP 的有效性 安全性 受保护程度b编译器 http www php net manual en intro bcompiler php反对逆向工程 简介页面做出了大胆的声明 在代码保护方面 可以肯定地说 如果
  • 如何在受 AWS Linux AMI 限制的情况下,将 SoX 二进制文件打包为 NodeJS AWS Lambda 函数的 MP3 支持?

    过去三个月我一直在研究这个问题 但完全陷入困境 我正在尝试打包我的 NodeJS AWS Lambda 函数 该函数将使用SoX http sox sourceforge net以及将音频文件转换为 MP3 的依赖项 我可以按照引用的说明让
  • Grails 2.3.7 删除 itext 2.0.8 jar

    我尝试将应用程序从 grails 2 2 4 更新到 2 3 7 但 iText 依赖项存在问题 执行 grails 资源依赖项显示我有 2 个用于 iText 的 jar org grails grails docs 2 3 7 org
  • 如何读取haskell类型签名?

    所以我把这个声明放在我的ghci上 jkl x f y f map y x 我把这个放回去了 jkl Num b gt b gt b gt t gt b gt t 但当我读到它时我很困惑 根据我的理解 jkl 是 num 类型 它采用 b
  • 如何用 gulp-rev 的输出替换 index.html 中列出的文件名?

    我在用着gulp rev https www npmjs org package gulp rev 构建我可以设置的静态文件永不过期 http developer yahoo com performance rules html expir
  • 使用服务帐户访问 Google Analytics API

    我可以使用客户端应用程序中的服务帐户访问 Google Analytics 数据吗 如果没有 是否有其他方法可以达到相同的结果 必须完全是客户端的 并且不能要求用户进行身份验证 因此需要使用服务帐户 是的 你可以在https code go
  • 用于 DOM 的 Gecko API

    Gecko 是否公开了直接使用其 DOM 的 API 我正在寻找像 HtmlElement 这样的类 可用于构建 遍历 HTML 内容树 我正在尝试将 Gecko 作为桌面应用程序中的 Web 浏览器控件托管 并且更喜欢直接 API 而不是
  • NuGet Pack:忽略默认包含

    这与我通常读到的问题相反 即人们试图获取 NuGet 包中包含的文件 我试图stop文件被自动包含 我正在创建一个预编译的 MVC 视图模板库 使用 RazorGenerator Mvc less文件和 JavaScript 来根据需要支持