各种 MSBuild 版本属性(例如 Version、VersionPrefix 和 VersionSuffix)之间有什么区别?

2023-12-22

使用 MSBuild 15 和 Microsoft.NET.Sdk 构建项目允许用户指定六个版本属性。它们之间有什么区别以及它们的正确使用方法是什么?

  • Version
  • 版本前缀
  • 版本后缀
  • 汇编版本
  • 文件版本
  • 封装版本

需要明确的是,我所说的“属性”是文件中定义的 MSBuild 属性(如下所示)

<PropertyGroup>
   <Version>1.2.0</Version>
</PropertyGroup>

...或在命令行上作为msbuild.exe /p:Version=1.2.0


此外,显式设置这些值将覆盖默认值。

版本前缀

Format:主要.次要.补丁

例子:14.2.4、0.1.0、99.99.99

Meaning:semver 版本号的正常部分。这用于确定开始Version value.

Default: "1.0.0"

版本后缀

Format: [0-9A-Za-z-.]*(任意字符串)

Examples:阿尔法、贝塔、build0123、rc4-build201701、rc.1、rc-1

Meaning:版本号的预发布标签。用于确定a的结束Version value.

Default: (空的)

Version

Format:主要.次要.补丁[-预发行]

Examples:5.3.9-β、0.0.1-α-01、0.0.1-α.1、2.0.0

Meaning:该属性是用户项目中最常用的属性。其他版本属性将此值视为默认值。它还用于生成以下值System.Reflection.AssemblyInformationalVersionAttribute。 preprerelease 值是可选的。

Default: 版本前缀如果 VersionSuffix 为空。版本前缀-版本后缀如果 VersionSuffix 是not empty.

注:设置Version明确将覆盖任何版本前缀 or 版本后缀设置。

此外,这通常遵循 SemVer 规则。看http://semver.org/ http://semver.org/欲了解详情

封装版本

Format:主要.次要.补丁[-预发行]

Meaning:用于在从 MSBuild 项目生成 NuGet 包时生成包版本。

Default: 火柴Version

汇编版本

Format:主要.次要.补丁.修订

例子:4.5.6.2、1.0.0.0

Meaning:用于生成的值System.Reflection.AssemblyVersionAttribute。编译器使用它来确定最终的 AssemblyVersion 值,这是程序集标识的重要组成部分。看https://msdn.microsoft.com/en-us/library/51ket42z(v=vs.110).aspx#Anchor_0 https://msdn.microsoft.com/en-us/library/51ket42z(v=vs.110).aspx#Anchor_0

Default: 火柴Version没有预发行标签。

文件版本

Format主要.次要.补丁.内部版本号

Examples:1.0.0.43952,0.1.0.0

Meaning:用于生成的值System.Reflection.AssemblyFileVersionAttribute。这不需要匹配 AssemblyVersion。在此版本中添加内部版本号是很常见的。

Default: 火柴汇编版本

信息版

Format: any

Meaning:用于生成的值System.Reflection.AssemblyInformationalVersionAttribute。该属性可以包含任何附加版本信息。

Default: 火柴Version

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

各种 MSBuild 版本属性(例如 Version、VersionPrefix 和 VersionSuffix)之间有什么区别? 的相关文章

  • 非模板函数中的尾随返回类型[重复]

    这个问题在这里已经有答案了 我见过有人使用以下语法来实现函数 auto get next gt int 代替 int get next 我理解两者 并且我知道尾随返回类型语法对于使用 decltype 的模板代码很有用 就我个人而言 我会避
  • 如何使用T4从一个模板同时生成两个文件?

    我遇到的情况是 我需要生成两个 CSharp 代码文件 它们的代码几乎相同 但方法的输入和输出类型的命名空间不同 事实上 每个文件都针对特定国家 地区 并且类型来自特定国家 地区的 WSDL 我正在围绕服务编写一些包装器 逻辑完全相同 但从
  • C++中类成员函数相互调用有什么好处?

    我是 C 新手 我发现下面的编程风格对我来说很有趣 我在这里写了一个简化版本 include
  • 如何在 C# 中以编程方式将行添加到 DataGrid?

    正如标题所述 我正在尝试使用 C 以编程方式将行添加到 DataGrid 但我似乎无法使其工作 这是我到目前为止所拥有的 I have a DataGrid declared as dg in the XAML foreach string
  • 在 C# 中解析 JS Date.toIsoString

    我需要将 JS 日期存储为 ISO 8601 日期 我目前正在从格式为 2019 06 22T00 00 00 000Z 的表单中获取日期 正如 JS 的 toIsoString 方法所期望的那样 当这个日期传递到我的 API 控制器时 我
  • 用于 C++ 中图像分析的 OpenCV 二进制图像掩模

    我正在尝试分析一些图像 这些图像的外部周围有很多噪声 但内部有一个清晰的圆形中心 中心是我感兴趣的部分 但外部噪声正在影响我对图像的二进制阈值处理 为了忽略噪音 我尝试设置一个已知中心位置和半径的圆形蒙版 从而使该圆之外的所有像素都更改为黑
  • X 轴和 Z 轴上的 Quaternion.Slerp,无 Y 轴

    I am trying to rotate the Player about X Y and Z axis The Y axis should not move from last angle Example if I rotate 45
  • 使用 STL 流时如何格式化我自己的对象?

    我想将我自己的对象输出到 STL 流 但具有自定义格式 我想出了这样的东西 但由于我之前从未使用过 locale 和 imbue 所以我不知道这是否有意义以及如何实现 MyFacet 和operator 所以我的问题是 这是否有意义以及如何
  • 如何从 Powerpoint 2010 导出电影?

    如何使用 MS Office PIA 主互操作程序集 或其他方式以编程方式将嵌入视频从 powerpoint 2010 导出到外部文件 在演示文稿中嵌入视频是 Powerpoint 2010 中的一项新功能 我找不到解决方案 PPTX 文件
  • 为什么连续抛出 2 个异常不会生成无法访问的代码警告?

    为什么以下代码行不会创建编译器警告 void Main throw new Exception throw new Exception 据我所知 编译器应该通知您无法到达第二个抛出异常 这显然是一个编译器错误 它是在 C 3 0 中引入的
  • MPI - 发送和接收列

    我需要从一个进程发送矩阵列并从另一个进程接收它 我尝试运行以下程序 但得到了一个奇怪的结果 至少我这么认为 仅复制矩阵的第一个元素 某些矩阵元素会发生意外变化 include
  • g++ / gcc 是否支持 C++20 新的atomic_flag 功能?

    根据参考参数 https en cppreference com w cpp atomic atomic flag c 20 有丰富的 对我来说有用的 支持atomic flag运营 然而 目前尚不清楚 gcc 是否支持这些功能 它们在任何
  • c++ - <未解析的重载函数类型>

    在我的班级里叫Mat 我想要一个将另一个函数作为参数的函数 现在我有下面 4 个函数 但是在调用 print 时出现错误 第二行给了我一个错误 但我不明白为什么 因为第一行有效 唯一的区别是功能f不是班级成员Mat but f2是 失败的是
  • 如何防止 Lotus Notes 用户转发或复制通过 System.Net.Mail 发送的邮件?

    我想使用 SMTP 客户端 uiing microsft net 以 C 作为编程语言发送电子邮件 但是对于通过SMTP客户端发送的电子邮件 我们是否可以添加 禁止转发 或 禁止复制 等安全功能 我不希望电子邮件的收件人转发或复制电子邮件的
  • 为什么存在系统调用

    我一直在阅读有关系统调用及其在 Linux 中如何工作的内容 我还有更多的阅读要做 但我读过的一件事都没有回答 那就是 为什么我们需要系统调用 我知道系统调用是用户空间程序要求内核执行某些操作的请求 但我的问题基本上是 为什么用户空间程序本
  • C++ 中的析构函数

    我的 AB h 文件中有一个构造函数 class AB private int i public AB i 0 constructor AB i 0 destructor virtual void methodA unsigned int
  • java有类似C#的属性吗? [复制]

    这个问题在这里已经有答案了 C 属性 我的意思是 get 和 set 方法 是一个非常有用的功能 java 也有类似 C 的属性吗 我的意思是我们如何在 java 中实现类似以下 C 代码的内容 public string Name get
  • 稀疏矩阵超定线性方程组c/c++库

    我需要一个库来解决 Ax b 系统 其中 A 是一个非对称稀疏矩阵 每行有 8 个条目 而且可能很大 我认为实现双共轭梯度的库应该没问题 但我找不到一个有效的库 我尝试过 iml 但 iml sparselib 包中缺少一些标头 有小费吗
  • 使用空的weak_ptr作为参数调用map::count安全吗?

    打电话安全吗map count http www cplusplus com reference map map count on an 未初始化因此为空weak ptr http en cppreference com w cpp mem
  • 如何使用 Microsoft Graph API 更新 MailboxSettings

    我想从不同的日历更新邮箱设置 如何构建可以通过 Microsoft Graph 更新 MailboxSetting 的请求 这是我的代码示例 但有例外 代码示例 User obj GraphServiceClient Users roomC

随机推荐

  • 使用 int 与 Integer

    我遇到一个类 它使用整数变量来捕获要在 for 循环中使用的大小 这是好的做法还是我们应该使用 int 原始数据类型 Integer size something getFields size for Integer j 0 j lt si
  • 将自定义对象的数据绑定到MvvmCross中的TextView

    I have one custom object in my ViewModel I want to bind only one of its member to textview in my droid view 我只想将该对象的字符串成
  • jQuery 显示一个 Div 并隐藏其他 Div

    http jsfiddle net yrM3H 2 http jsfiddle net yrM3H 2 我有以下代码 jQuery document ready function jQuery toggle next hidden hide
  • 检查变量是否已设置然后回显而不重复?

    是否有一种简洁的方法来检查变量是否已设置 然后回显它而不重复相同的变量名称 而不是这个 我正在考虑这个 C 风格伪代码中的一些内容 PHP has sprintf http www php net manual en function sp
  • 如何更改@NotNull注释对应返回的响应JSON

    我有一个简单的代码 当 RequestBody 中不存在 customerId 时 它返回错误 json VO 类 public class OrderVO private int orderId NotNull message Custo
  • 如何向 html 5 视频添加嵌入链接

    如果您在 Discord 中链接 YouTube 视频 它会在 Discord 上显示为可播放的视频 而不仅仅是链接 对于我的视频 如果我从我的网站链接它们 不和谐会将它们显示为链接而不是视频 我听说我需要在其中嵌入链接 但我不知道我在寻找
  • 打印机 println:未创建新行

    我正在尝试使用 Apache POI 类将 Outlook MSG 文件解码为文本文件 一切正常 除了println的方法PrintWriter 它不会创建新行 它只是将每个句子直接一个接一个地连接起来 下面代码片段的结果是 De text
  • 正则表达式将数字与逗号和点匹配

    我想使用匹配整数和浮点数re模块 因此 如果有人键入以下输入类型之一 它应该验证它是否是一个数字 1000 1 000 1 000 1 000 98 1 000 1 0 1 0000 现在我正在使用以下内容 0 9 任何帮助表示赞赏 对于给
  • 将 JSON 反序列化为对象

    我正在将 JSON 字符串反序列化为对象 我无法使用Dictionary
  • 是否可以为基于 Click 的界面中的所有子命令添加全局参数?

    我正在 virtualenv 下使用 Click 并使用entry pointsetuptools 中的指令将根映射到名为调度的函数 我的工具公开了两个子命令serve and config 我在顶级组上使用一个选项来确保用户始终通过 pa
  • 使用 useState hook 时 React 组件渲染两次

    我无法理解为什么我的应用程序反应组件渲染两次 如下面的 gif 所示 我在返回组件之前插入了一个 console log 以查看组件渲染了多少次 每当我删除 useState 挂钩时 我的应用程序就会像我想象的那样只渲染一次 欢迎任何关于为
  • 如何在Svelte中直接挂载HTMLElement?

    我正在使用一些返回 HTML 元素的外部代码 最好嵌入它 而无需通过 JavaScript 管理加载和所有内容 即appendChild removeChild 现在我正在使用 html element outerHTML 但这似乎不太优雅
  • 如何获取我的应用程序的任务列表及其活动堆栈?

    为了更好地理解活动 任务 每个任务的后台堆栈以及不同的启动模式之间的关系 我想编写一个包含大约 7 个活动的应用程序 在 3 个任务中运行 其中活动以不同的启动模式启动 并且我正在运行 我想显示每个活动的堆栈 并在我浏览应用程序并启动或关闭
  • Python 的 Vim 自动完成

    我正在尝试将自动完成功能合并到Vim http en wikipedia org wiki Vim 28text editor 29 我使用了 Vim 的全能补全功能皮迪克申 http www vim org scripts script
  • 从 R 中的向量创建频率计数[重复]

    这个问题在这里已经有答案了 假设有一个向量 其数值可能有重复值 x lt c 1 2 3 4 5 1 2 2 3 我想创建另一个计数向量 如下所示 它的长度与x 对于每个唯一值x 第一次出现为1 第二次出现为2 以此类推 我想要的新向量是
  • 是否可以使用 bash 在 for 循环中访问多个数组

    我正在尝试编写一个 bash 脚本 让我使用curl 下载多个网页 对于每个网页 我希望能够传递卷曲页面和引用链接 我希望能够同时提供多个网页 换句话说 我希望能够循环浏览我提供脚本的网页 并且对于每个页面 将关联的网页和引用链接传递给cu
  • 在 ECR 中标记多平台图像会创建未标记的清单

    我开始使用 docker buildx 来标记多平台映像并将其推送到 ECR 但是 ECR 似乎将标签应用于父清单 并将每个相关清单保留为未加标签 ECR 似乎确实可以防止删除子清单 但它使管理孤立的未标记图像的清理变得复杂 有没有办法以某
  • Django:重复的键值违反了唯一约束

    我有一个笑话模型 class Joke models Model date created models DateTimeField default datetime now blank True date modified models
  • python 中使用 pop()、list[-1] 和 += 时求值的顺序是什么?

    a 1 2 3 a 1 a pop 这导致 1 6 a 1 2 3 a 0 a pop 这导致 4 2 这两个结果的评估顺序是什么 首先是右侧 然后是左侧 并且在任何一侧 评估顺序都是从左到右 a 1 a pop 与a 1 a 1 a po
  • 各种 MSBuild 版本属性(例如 Version、VersionPrefix 和 VersionSuffix)之间有什么区别?

    使用 MSBuild 15 和 Microsoft NET Sdk 构建项目允许用户指定六个版本属性 它们之间有什么区别以及它们的正确使用方法是什么 Version 版本前缀 版本后缀 汇编版本 文件版本 封装版本 需要明确的是 我所说的