- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
技术:
Proget – Nuget 包管理服务器
TFS – 本地 2017 更新 1
问题:当从 TFS 版本重新发布构建时,要重新打包已经进入我的 Proget 开发源的 CI Nuget 包,似乎没有办法获得自动 Semantic versioning 。关于在 Nuget 打包程序设置中设置版本的帮助对话框如下所示。
Use Date and Time If you choose 'Use the date and time', this will generate a SemVer-compliant version formatted as X.Y.Z-ci-datetime where you choose X, Y, and Z.
Use an Environment Variable If you choose 'Use an environment variable', you must select an environment variable and ensure it contains the version number you want to use.
Use the Build Number If you choose 'Use the build number', this will use the build number to version you package. Note: Under General set the build format to be '$(BuildDefinitionName)_$(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r)
我希望能够重新发布一个 Nuget 包,该包已从 TFS 中的 CI 构建转移到我的 Proget 开发源,再转移到我的生产 Proget 源中。 Microsoft 有一篇关于 Versioning NuGet packages in a continuous delivery world 的精彩文章。在那篇文章中,他们回避了这样一个事实:他们正在做类似的事情,但他们没有提供任何关于如何实现这一目标的真正方向。
问题:
如何配置 Nuget 打包器,以便在创建包时输入构建变量?或者有没有一种方法可以设置主要版本并且每次只进行次要增量?其他人如何处理软件包从开发到生产的推广?
已尝试以下操作:
尝试将 $(Version) 作为构建和发布变量,但它似乎不起作用。包裹上贴有日期标签。此外,这似乎只在 TFS 的“构建”部分中真正起作用,其中模态窗口包含一个可以修改此值的位置。
尝试使用日期和时间方法,它将 CI 粘贴到内部版本号中。这几乎正是我们想要的减去 CI 定义的结果。因为它会自动插入 CI,所以这不适合生产。
关闭它,它会从 Nuspec 中提取版本,但这会假设在您的 CI 构建中,在推送最后一个发行版本后,您总是将版本号增加到比当前版本号大 1。这是因为 nuspec 位于您通过 TFS 发布链重新发布的构建文件中。至少可以说令人困惑。
使用设置为 $(BuildDefinitionName) 的内部版本号$(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r) 我想要的是 $(Major) .$(次要).$(补丁)。尝试使用版本 1.0.0 的 $(Version)$ 会得到一个名为 的文件,其输出为 2017.11.3.1,似乎忽略了 $(Version) 变量。
最佳答案
不确定我是否完全明白你的意思,似乎你想在 TFS 上的 ci 进程之后创建一个语义版本化的 nupkg。
通常,nupkg 应如 MSVersioningSample 所示:1.0.8-ci-20171106-156033.nupkg
但是,您想重命名 nupgk 并将其作为发布版本重新发布到 nuget 服务器,只需 MSVersioningSample: 1.0.8.nupkg
与 $(Major).$(Minor).$( 相同补丁)。
您需要在构建代理中编辑NuGetPackager.ps1
,更改$VersionRegex
值,详细信息您可以查看此问题中的答案:How do I get TFS 2015 to parse 3 digit versioning for NuGet packaging
还可以尝试使用一些第三方扩展来处理 TFS 构建、发布任务、nuget 包中的语义版本控制,供您引用的示例:Semantic Versioning Build and Release Tasks
此外,请注意:Semantic Versioning 2.0.0 仅支持 NuGet 4.3.0+ 和 Visual Studio 2017 版本 15.3+。
关于tfs - Nuget 包版本控制和从 CI 升级到生产 Nuget 源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47104666/
我已经在Visual Studio中创建了新的解决方案,启用了nuget包还原,并进入了解决方案根.nuget文件夹,该文件夹包含使包还原正常工作所需的以下文件:NuGet.exe,NuGet.con
自 Nuget 1.5 以来,我的团队一直在使用“启用包还原”选项,以使包不受我们的源代码控制。当 Nuget 1.6 发布时,我们注意到一个问题,即它没有拉取软件包,并跟踪它到 .nuget 文件夹
我维护了一些小的 Nuget 包。 我在 git 存储库中有一个 Nuget README 文件,.nupkg 文件由 VS 根据“Package”配置自动构建,存储在 .csproj 文件。 每当我
我们是一个小型开发团队,我们希望开始使用我们的库作为 NuGet 包。现在我已经看到我们可以创建 NuGet 提要或 NuGet 服务器或 NuGet 画廊。 现在我们不确定有什么区别,对于我们的小团
我正在编写一个脚本,它将自动打包 Nuget 文件并将其发布到我的私有(private)存储库(文件共享)和私有(private)符号服务器(在 localhost 上)。 当我运行 nuget pa
我有一个解决方案,我想从两个项目中创建一个 NuGet 包。 如果它只是一个项目,我会使用 .csproj 文件来规范 NuGet 打包器,但由于我希望两个不同的项目进入完成的包,我不能这样做。 我创
我正在做一个需要处理 Excel 文件的项目。我为这项工作找到了一个名为 Aspose.cells 的库。它不是一个免费的图书馆,我们应该从它的网站购买它的许可证,以便在我们的项目中使用它。但是,我发
我已经使用 Nuget 安装程序创建了一个 TeamCity 构建步骤,但是当我运行这些步骤时出现错误: Updating sources: server side checkout [15:35:4
是否有任何指南或建议来管理不在 nuget 上的库以及在 nuget 上的包。 其中大多数可能是 3rd 方库,除非我们专门安装它们,否则它们可能永远不会继续使用 nuget。 最好将这些 dll 放
我一直在研究自托管 NuGet,但很难理解如何设置它以及它如何帮助支持我们的开发过程。 有没有人对使用哪个,如何设置有任何建议? 或者我应该只使用托管服务? 最佳答案 在查看了各种解决方案(自托管和托
我正在为 OSGeo.FDO 创建 nuget 包,但我遇到了以下问题。 FDO 使用 providers.xml列出它可以使用的所有提供程序的文件。所以我创建了一个名为 OSGeo.FDO 的主包包
我想知道 NuGet 的含义是什么。它是像blah blah get这样的东西吗?它甚至有一个有意义的名字吗?或者它是某物的缩写还是有人为了好玩而决定这个名字?请帮忙,这个问题已经困扰了我 1 周。
This question already has answers here: Is it possible to change the location of packages for NuGet?
如何在 Visual Studio 之外下载 NuGet 包?所以它可以用来创建离线包。 最佳答案 如何在没有 Visual Studio 或 Nuget 包管理器的情况下下载 NuGet 包: 在
我似乎在网络上找不到任何对此表示赞同或反对的地方。谁能指出我的答案吗?或者更好的是,如果您从事 NuGet 工作,您能否给出一些指示,说明是否有任何计划允许商业库包(我认为需要某种身份验证)包含在未来
我已经打开了 TeamCity 的 NuGet 服务器,我想推送公共(public)包(即来自 NuGet.org 等公共(public)资源),因为构建服务器无法看到我们公司外部的信息,因此从 Nu
在我的工作团队中,我们依赖两个 NuGet 提要:来自 NuGet.org 的官方提要用于公共(public)包,而我们文件服务器上的文件夹用于内部包。 这对我们来说效果很好,但我认为我们有一个潜在的
我在我工作的 Web 服务器(在 IIS 7.0 下)上设置了新的 NuGet Gallery。该网站本身已设置并运行良好。我们能够注册帐户、确认电子邮件地址,甚至通过网站本身上传新包。 我们的自动构
当我们在 Visual Studio 2017 中创建 nuget 包时,它默认将项目引用添加为另一个 nuget 引用。 我们如何在创建包时禁用它,而是: 选择不同的包名 在创建包时包含项目的 dl
我可以执行类似 - mono --runtime=v4.0.30319 /Library/TeamCity/buildAgent/work/b0d2d3fefe88d393/.nuget/NuGet.
我是一名优秀的程序员,十分优秀!