如何在解决方案上有选择地使用 dotnet pack

2023-12-20

我有一个解决方案foo.sln。里面的所有库都是 SDK 项目。然而,只有其中之一应该是packed

默认情况下

dotnet pack

尝试打包所有项目。与此相关,没有排除过滤器或包含过滤器。推荐的流程是什么?


您可以通过在其中设置属性来选择将哪个项目打包为 nuget 包csproj文件,像这样:

<IsPackable>true</IsPackable>- 创建包

<IsPackable>false</IsPackable>- 不创建包

如果您不想在每个文件中指定它,您可以创建一个名为的文本文件Directory.Build.props在包含以下内容的目录中:

<Project>
  <PropertyGroup>
    <IsPackable>false</IsPackable>
  </PropertyGroup>
</Project>

它将自动包含在该文件夹和所有嵌套文件夹中 SDK 项目文件 (csproj) 的开头,因此您可以为这组项目指定通用默认值,并且如果需要,可以在各个 csproj 文件中覆盖它们。

如果您不希望它们被覆盖或需要使用 csproj 中定义的某些值,则应该使用文件名Directory.Build.targets,这将自动包含在 csproj 的末尾。

在我们的项目中,我们使用以下结构:

 \
   \src
      <actual projects>
      Directory.Build.props
   \tests
      <unit tests>
      Directory.Build.props
   Directory.Build.props
   MySolution.sln

通过这种方式,我们能够为测试项目和常规项目指定不同的公共属性。

需要注意的是,默认情况下只有第一个Directory.Build.props发现的csproj将被应用,要更改此行为,您需要在嵌套的开头添加此行Directory.Build.props文件(在Project tag):

  <Import Project="$([MSBuild]::GetPathOfFileAbove('$(_DirectoryBuildPropsFile)', '$(MSBuildThisFileDirectory)../'))" />

有关所有这些的更多信息可以在这里找到:https://learn.microsoft.com/en-us/visualstudio/msbuild/customize-your-build?view=vs-2017 https://learn.microsoft.com/en-us/visualstudio/msbuild/customize-your-build?view=vs-2017

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

如何在解决方案上有选择地使用 dotnet pack 的相关文章

  • 可选参数代码在 .NET 3.5 中编译。为什么?

    这段代码在 VS 2010 的框架 3 5 项目中编译正常 我三次检查过 public LoggingClient string uri net msmq localhost logging 为什么 我在 C 4 规范中没有看到任何内容 文
  • C# 暴露给 COM - 接口继承

    假设我有一个实现 IBaseClass 的类 BaseClass 然后我有一个继承IBaseClass的接口IClass 然后我有一个名为 class 的类 它实现了 IClass 例如 ComVisible true InterfaceT
  • 创建序列的幂集

    我正在尝试创建一个程序 作为创建序列 字符串或数字的可能组合的基础 这是某种加密 解密程序 我正在使用 Visual Studio 2013 和 C 我想做的是从序列中生成幂集 但我有点困惑并且无法继续进行 这是代码 public stat
  • Spring.Net可以起到PostSharp的作用吗?

    几个月前 我发现了 PostSharp 有一段时间 它非常棒 但随后法律部门回复说他们不喜欢旧版本的许可证 然后部门告诉我2 0的价格高得令人无法接受 对于我们需要的座位数量 我非常失望 但并不沮丧 我想 这不可能是唯一的这样的框架 我一直
  • 在 LINQ 查询中进行转换

    是否可以在 LINQ 查询中进行强制转换 为了编译器的缘故 下面的代码并不糟糕 但最好将其放入一个查询中 Content content dataStore RootControl as Controls Content List
  • 返回无效或过期令牌的错误

    我正在尝试使用 Owin 实施 OAuth 承载身份验证 当传递无效或过期的令牌时 默认实现是将其记录为警告并且只是不设置身份 然而 在这种情况下 我想拒绝整个请求并出现错误 但我该怎么做呢 深入研究代码后我发现OAuthBearerAut
  • Selenium - 异常 - 连接关闭

    我正在使用最新的 Selenium WebDriver 使用 NET Microsoft 技术堆栈运行 这些天我观察到的是 套件中的所有测试都开始失败并抛出此异常 附加信息 向远程 WebDriver 服务器发送 HTTP 请求以获取 UR
  • C# 通过实体框架调用 SQL Server 用户定义的函数

    我不敢相信我必须问这个问题 但我被困住了 我花了三个小时试图解决这个问题 但我被困住了 我可以在以前版本的 C 中执行此操作 但我卡住了 在继续之前 我正在研究堆栈 视觉工作室2012 SQL Server 2012 NET Framewo
  • C# HttpClient:为什么使用 MediaTypeWithQualityHeaderValue?

    尝试在请求上设置 Content Type 标头属性时 MediaTypeWithQualityHeaderValue 参数的用途是什么 MSDN 文档 https msdn microsoft com en us library syst
  • 从字符串数组中删除项目

    我有一个包含如下数据的数据库字段 76 60 12 例如 如果我想删除60 我该怎么办 要删除的号码可以是任何地方 如果需要的话 我还需要删除逗号 我正在使用 NET 2 0 我会用逗号分割字符串 删除元素 然后再次连接字符串 希望这一切都
  • 在哪里停止使用 async /await 关键字?

    我的 DB2 400 有一个简单的心跳方法 public bool CheckConnection try using OleDbConnection db new OleDbConnection this conString OleDbC
  • 拆分容器,制作固定面板

    我有一个水平方向的 splitcontainer 我希望仅在表单调整大小期间为 panel2 设置固定高度 并让 splitter 调整 panel2 大小 现在我正在这样做 但我不满意 因为用户注意到面板调整了大小 Private Sub
  • 如何将 POST 请求内容保存为 .NET 中的文件 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一个客户端应用程序POST请求a
  • 您将如何在 F# 中解决这个问题? (高频传感器数据)

    我是一名机械工程研究生 我的导师刚刚要求我为我们的一个传感器项目编写一个数据可视化实用程序 由于现在是夏天 他希望我能从中获得一些乐趣 我认为这将是学习一门擅长科学计算的语言的好时机 所以我直接开始学习 F 由于我是函数式编程范例的新手 因
  • C# WCF Web Api 4 MaxReceivedMessageSize

    我正在使用 WCF Web Api 4 0 框架 并且遇到 maxReceivedMessageSize 已超过 65 000 错误 我已经将我的 webconfig 更新为如下所示 但因为我正在使用 WCF Web Api 我认为这甚至不
  • .NET ListView列顺序问题

    我在表单中遇到问题 我已按以下顺序将列添加到 NET ListView 控件 A B C D A D 列的显示索引按顺序为 0 3 但它们的显示顺序错误 A B D C these are switched at runtime 注意 一切
  • 增加超时时间

    我必须增加超时时间 以下是我的代码 Private Function GetConnectionInstance As SqlConnection Dim objConn As SqlConnection Dim strConnection
  • 优化对绑定到 DataGridView 的 DataTable 的更新

    我的应用程序中有一个显示一些数据的表单 当我第一次显示表单时 我将一些数据加载到 DataTable 中 然后将 DataTable 绑定到 DataGridView 我还启动了一个异步方法来执行一些较慢的数据库查询 当这些慢查询完成时 我
  • .NET 中 IEqualityComparer 中 GetHashCode 的作用是什么?

    我试图了解 IEqualityComparer 接口的 GetHashCode 方法的作用 下面的例子取自MSDN using System using System Collections Generic class Example st
  • 为什么 32 位 .NET 进程的引用类型的最小大小为 12 字节

    我正在读专业 Net 性能 https rads stackoverflow com amzn click com 1430244585本书有关参考类型内部结构的部分 它提到 对于 32 位 net 进程 引用类型具有 4 字节的对象头和

随机推荐