Azure DevOps Server 2022.0.1升级手册

Azure DevOps Server 2022新功能:导入和导出到CSV文件,实现批量修改工作项 Azure DevOps Server(之前名称为TFS)作为微软的软件研发管理平台产品,由于系统涉及到软件开发的全过程和多种角色,服务器中积累了大量的软件开发过程数据,例如需求、评审、Bug和测试用例等。在对这些数据进行批量操作(例如批量更新、导入、导出和数据分析)的过程中,进行需要与第三方工具集成实现统计分析等处理。谈到第三方工具,熟悉DevOps Server 的用户马上会想到Micros... 阅读详情

Contents

  • 1. 概述
  • 2. 操作方法
    • 2.1 安装操作系统
    • 2.2 安装数据库
    • 2.4 还原数据
    • 2.3 安装和配置Azure DevOps Server

1. 概述

Azure DevOps Server 是微软公司经过20多年的持续开发,逐渐将需求管理、敏捷实践、源代码管理、持续集成等功能集成一体,实现应用软件生命周期全流程服务的技术平台,为软件开发、测试和运维团队提供协同工作的DevOps平台。在2022年8月发布了Azure DevOps Server 2022的第一版本RTM后,2023年4月11日又发布了这个版本的第一个升级包(2022.0.1)。新发布的版本包主要针对RTM版本修复了近期发现的问题,并没有大的功能变动,我们可以将其视为一个补丁全集,但是它也是一个功能完整的版本,我们可以在生产环境中安装或升级这个版本,微软公司提供与RTM版本一样的技术支持。
由于这个版本的变动不大,升级生产环境不会对系统产生大的风险,大家可以放心升级。

本文主要介绍如何在测试环境中验证这个版本。

  • 在升级前,我们当前的版本环境是这样的:
    • 操作系统:Windows Server 2019
    • 数据库:SQL Server 2019
    • 应用软件:Azure DevOps Server 2022
  • 升级测试环境为:
    • 操作系统:Windows Server 2022
    • 数据库:SQL Server 2022
    • 应用软件:Azure DevOps Server 2022.0.1

2. 操作方法

2.1 安装操作系统

由于操作系统的安装步骤和方法不是本文介绍的重点,我们在这里略过操作系统的安装步骤。
总体上来说,操作系统一般包括按照操作系统、加入AD域两个步骤。

2.2 安装数据库

由于Azure DevOps Server的工作项查询功能继续继承之前TFS的模糊查询,因此还需要安装SQL Server的全文索引功能,如下图:

多云MLOps实战:SageMaker+Azure DevOps零硬编码落地指南 MLOps是指将机器学习模型从开发、训练、验证到部署、监控、迭代的全生命周期工程化管理。其核心原理在于通过可复现、可审计、自动化的流水线,弥合数据科学与软件工程之间的协作鸿沟。在混合云与多云成为企业基础设施常态的今天,MLOps的技术价值已从‘提升实验效率’升级为‘保障生产级模型交付合规性与可观测性’。典型应用场景包括金融风控模型灰度发布、工业预测性维护服务滚动更新、跨云A/B测试与模型漂移预警等。本文聚焦多云MLOps落地中最关键的两大热词——权限最小化与凭证零硬编码,详解如何基于Amazon SageM 阅读详情

相关推荐

Azure DevOps四段式CI/CD实战:构建、测试、制品、部署全链路避坑指南

CI/CD是现代软件交付的核心实践,其本质是通过自动化流水线实现代码到生产环境的可靠、可重复、可审计转化。其底层原理依赖于构建(Build)、测试(Test)、制品(Package)、部署(Deploy)四个关键阶段的解耦协同与契约化交接。技术价值在于显著降低人工干预风险、加速反馈闭环、强化质量门禁并满足合规审计要求。典型应用场景包括金融级SaaS持续交付、医疗系统灰度发布、多团队并行微服务治理等。本文聚焦Azure DevOps平台,深入解析分层Pipeline设计、YAML字段血泪配置、NuGet制品可

weixin_33826609的博客 393

Azure DevOps YAML流水线实战:构建-测试-部署全链路落地指南

CI/CD流水线是现代软件交付的核心基础设施,其本质是将代码变更自动转化为可验证、可审计、可回滚的生产就绪状态。实现这一目标的关键在于标准化流程定义(YAML Pipeline)、前置质量门禁(自动化测试集成)与环境一致性保障(多环境部署策略)。Azure DevOps凭借深度Git集成、原生YAML支持和丰富任务生态,成为企业级CI/CD落地的高成熟度平台。本文聚焦真实工程场景,详解如何从零搭建具备编译加速、分层测试门禁、蓝绿部署与可观测性输出的生产级流水线,并覆盖Agent选型、变量安全、缓存优化等高频

culh2177的博客 419

MLFlow+Azure实战:构建可追溯、可审计的机器学习实验管理体系

机器学习实验管理是保障模型可复现性、协作效率与合规落地的核心能力。其本质是通过标准化日志记录、参数追踪、模型版本控制与环境快照,实现从代码变更到指标波动的全链路归因。MLFlow作为开源实验追踪框架,凭借开放Model Flavor规范、本地/云原生双模支持及轻量集成特性,成为企业级MLOps的事实标准;结合Azure Blob Storage的不可变存储、Key Vault的密钥托管与RBAC细粒度权限,可构建满足HIPAA、GDPR等合规要求的私有化实验平台。本文聚焦MLFlow在Azure云上的生产级

weixin_30432579的博客 457

Azure CLI企业级安装与认证实战指南

Azure CLI是Azure平台的命令行操作系统内核,其安装与认证远不止于基础工具配置,而是涉及安全基线、合规治理与自动化流水线构建的核心能力。理解CLI背后的ARM资源模型、现代云身份体系(如Workload Identity Federation)及权限契约,是实现跨平台一致性、零故障脚本迁移和金融级审计合规的前提。本文聚焦企业真实场景——从WinGet/MSI选型博弈、Linux包管理器信任链加固,到Service Principal向托管标识与联合身份的强制演进,覆盖Windows/Linux/m

weixin_33951761的博客 438

Azure Storage Explorer深度实战:连接、上传与安全管控全指南

Azure Storage Explorer(ASE)是面向Azure Blob、File、Table服务的图形化管理工具,本质是将底层REST API交互逻辑封装为拖拽式操作,降低云存储运维门槛。其核心原理基于三种认证机制——账户密钥(Account Key)、共享访问签名(SAS Token)和Azure AD身份认证,分别对应不同安全等级与适用场景。技术价值在于实现元数据批量编辑、精细化SAS控制、跨订阅连接及离线缓存等企业级能力,显著提升GDPR合规审计、CI/CD流水线调试与混合云运维效率。典型应

weixin_33693070的博客 563

Windows服务器TLS 1.0/1.1一键禁用脚本:修复SWEET32漏洞实战

TLS(传输层安全)协议是保障网络通信加密与身份验证的核心技术,其通过握手协商、密钥交换和对称加密等机制构建安全通道。随着计算能力提升和攻击手段演进,早期TLS 1.0/1.1版本因设计缺陷(如使用64位分组密码)面临SWEET32(CVE-2016-2183)等中间人攻击风险,可能导致会话密钥被暴力破解。在工程实践中,禁用旧协议并强制使用TLS 1.2/1.3已成为服务器安全加固的基础要求,尤其适用于承载Web服务、数据库及企业应用的Windows Server环境。本文聚焦于通过PowerShell脚本

weixin_30363981的博客 345

Azure Blob Storage企业级实战:存储分层、安全模型与成本优化

Azure Blob Storage 是面向海量非结构化数据的云原生对象存储服务,其核心原理基于扁平键值空间与多级存储分层(Hot/Cool/Archive),通过前缀设计实现高效查询,依托 RBAC、SAS Token 和生命周期策略构建纵深安全与自动化成本治理能力。技术价值体现在高并发吞吐、跨区域弹性扩展及与 Azure CDN、Key Vault 等服务的深度集成。典型应用场景包括媒体中台内容托管、AI训练数据湖底座、IoT日志归档及CI/CD构建产物存储。本文聚焦真实生产环境中的存储层级选择、容器权

chuanzhuanxian8669的博客 504

Visual Studio开发环境搭建与核心功能解析

集成开发环境(IDE)是现代软件开发的核心工具,通过集成代码编辑、编译调试等功能大幅提升开发效率。Visual Studio作为微软旗舰级IDE,采用模块化架构设计,支持通过工作负载定制安装组件。其智能编码系统IntelliCode基于AI技术提供上下文感知的代码补全,配合强大的调试工具链可快速定位性能瓶颈。在云原生和跨平台开发场景中,Visual Studio提供Azure服务集成和.NET跨平台支持,结合扩展生态可满足从Web开发到游戏编程的多样化需求。对于企业级开发,ReSharper等扩展能有效提升

weixin_30635053的博客 295

微软技术生态四层能力地图:从开发平台到交付通道

微软技术体系并非零散工具集合,而是一个分层演进的有机生态。其底层是.NET运行时与开发平台,提供跨平台应用执行环境;中间层涵盖SQL Server、Active Directory等基础产品,解决状态持久化与身份治理;上层Enterprise Products如Dynamics 365、SharePoint则将技术能力翻译为业务建模语言;最外层Delivery Channel通过Web、移动、桌面与云协同实现价值触达。理解这一结构,有助于规避盲目追新、产品误用与云迁移失焦等典型误区。尤其在Power Pla

489

Ubuntu零基础入门到精通【1.1讲】:什么是 Ubuntu?一文带你彻底搞懂!

🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。 本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。

**My Coding Family** 5956

Azure DevOps Server 2019.pptx

Introducing Azure DevOps Server DevOps allows us to accelerate delivery, while still delivering reliable products and services

软考中级信息系统监理师(第二版)-第21章基础设施工程监理

由于网络信息技术的飞速发展,变化日新月异,网络设计不但要保证目前网络传输容量的要求,也要考虑今后网络的发展,满足当前以及今后相当一段时间内的网络需求,便于向新技术的升级和衔接,同时又需要保护原有的投资。通用布缆系统工程中,承建单位的竣工文档主要包括以下内容:承建合同,招标文件,投标文件,设计方案,工程实施组织设计方案,工程施工报告,隐蔽工程记录,变更记录,自测报告,信息点分布图(表),园区、楼宇、水平配线表,楼层平面图及无线设备点位图,无线设备信息表,竣工图纸等。多排安装时,列间距不应小于1200mm。

2301_78583973的博客 1401

通过 CoovaChilli 和 FreeRADIUS 搭建一个公共 Wi-Fi 的认证系统,实现用户连接到 Wi-Fi 后通过 Captive Portal(强制登录页面)进行认证

要实现固定设备连接的功能,你可以通过MAC 地址认证来限制哪些设备可以通过 FreeRADIUS 进行身份验证和连接。你可以在 FreeRADIUS 的users文件中直接配置允许的设备的 MAC 地址,也可以通过数据库存储和查询设备信息,进一步提高管理效率。通过这些方法,你可以灵活地控制哪些设备能够访问你的 Wi-Fi 网络。

m0_69943017的博客 2651

Android应用加固脱壳实战:从爱加密原理到Frida内存Dump与修复

在移动应用安全领域,代码加固与动态加载是保护核心逻辑的关键技术。其原理在于通过修改应用启动流程,将原始DEX加密隐藏,并注入包含解密逻辑的壳DEX,实现运行时动态加载。这项技术的核心价值在于防止应用被逆向分析、二次打包或恶意篡改,广泛应用于金融、游戏等高安全要求场景。对于安全研究、漏洞挖掘或历史版本审计,掌握脱壳技能至关重要。本文聚焦于**爱加密**等主流加固方案,深入探讨如何利用**Frida**框架在内存中精准捕获解密后的DEX数据,并解决脱壳后常见的签名校验等运行问题,提供一套从原理到实践的完整攻防思

weixin_28716443的博客 492

基于python的奥运会历史数据分析【120年】

数据分析实战案例

xff123456_的博客 3339

手把手教你用UNet实现轨道缺陷检测(附RSDDs数据集下载与完整代码)

本文详细介绍了如何使用UNet模型实现轨道缺陷检测,包括RSDDs数据集的下载与处理、UNet架构的改进与优化、训练策略设计以及模型部署的全流程。通过实战案例,展示了如何利用深度学习技术提升工业质检效率,特别适合从事工业缺陷检测和图像处理的开发者参考。

dapp9builder的博客 749

Android14 RK3576开发板有线网卡静态IP配置全攻略(附数据库修改详解)

本文详细介绍了在Android 14 RK3576开发板上实现有线网卡出厂默认静态IP配置的完整方案。通过深入修改系统源码和SettingsProvider数据库,扩展全局设置字段并注入默认值,确保设备首次启动即自动应用预设的IP地址、子网掩码、网关和DNS,适用于工业控制、数字标牌等批量部署场景,有效提升生产效率。

weixin_29253711的博客 609

从零到一:Ubuntu22.04下VSCode与中文输入法的深度整合指南

本文详细介绍了在Ubuntu22.04系统中如何深度整合VSCode与中文输入法,包括环境准备、安装方案对比、输入法配置及常见问题解决方案。通过fcitx框架优化中文输入体验,提供从基础设置到高级调试的全方位指南,帮助开发者提升在Linux环境下的开发效率。

weixin_29158047的博客 483

国产上位机软件突围:适配统信UOS/麒麟OS的跨平台开发技术与实践(2026年信创实战指南)

(航天科技集团CTO):“在信创战场上,1ms的延迟意味着1个卫星的控制失效。2026年,C#/.NET MAUI不是选择,而是我们守护卫星的‘生命线’。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 414

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: Azure DevOps Server 数据还原方式三:增量还原
下一篇: 第9次获得微软最有价值专家(MVP)奖励
Azure DevOps
博客等级 码龄6年 219粉丝 296原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值