如何测试安装了哪个版本的 Service Fabric 运行时
Posted
技术标签:
【中文标题】如何测试安装了哪个版本的 Service Fabric 运行时【英文标题】:How to test which version of Service Fabric Runtime is installed 【发布时间】:2019-02-10 08:46:20 【问题描述】:任何人都知道如何测试是否安装了正确版本的服务结构。
我想在我的构建服务器配置中添加一个部分,以确保服务结构 cmdlet 已安装并可被我们的构建过程使用。
我想安装这个 exe https://download.microsoft.com/dow nload/1/A/A/1AA062F9-0E1D-40E9- BD4F6F12ABB71083/MicrosoftServiceFabri c.6.3.176.9494.exe 在 Windows 2016 框中,如果它不存在的话。
我看过
get-wmiObject -class Win32_Product
但它似乎没有出现在那里,是 Windows 更新还是什么?
【问题讨论】:
【参考方案1】:以下内容不正确,请参阅 Diego 评论
所以似乎有一个 powershell 命令作为运行时的一部分安装,可以回答这个问题。
(Get-Module -ListAvailable ServiceFabric) -ne $null -and (Get-ServiceFabricRuntimeSupportedVersion -Latest).Version -eq "6.3.176.9494"
这会让我暂时继续前进,但如果有人有更好的建议,请告诉我。干杯。
迄今为止最好的解决方案感谢 Diego
(Test-Path 'HKLM:\SOFTWARE\Microsoft\Service Fabric\') -and (Get-ItemPropertyValue 'HKLM:\SOFTWARE\Microsoft\Service Fabric\' -Name FabricVersion) -eq "6.3.176.9494"
【讨论】:
这并没有为您的问题提供答案。Get-ServiceFabricRuntimeSupportedVersion
获取有关独立部署当前支持的所有服务结构运行时版本的详细信息。当前支持的意思是,仍然从 SF 团队获得修复的版本。
啊,很高兴知道,我想我会切换到注册表项的方法,谢谢你的帮助。您可以编辑您的答案以将 Get-ItemPropertyValue 命令作为第 1 个选项,我会接受它作为答案。【参考方案2】:
有几种方法可以识别当前安装的版本:
注册表项
打开注册表编辑器 (regedit) 导航到:Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Service Fabric
找钥匙:FabricVersion
您也可以通过 powershell 进行操作:Get-ItemPropertyValue 'HKLM:\SOFTWARE\Microsoft\Service Fabric\' -Name FabricVersion
二进制版本
转到运行时安装文件夹,如下所示:C:\Program Files\Microsoft Service Fabric\bin\
找到应用程序FabricHost.exe
并点击属性,进入选项卡详细信息,版本将在此处列出
已安装的应用程序
转到控制面板 > 程序 > 程序和功能 在列表中搜索“Fabric”并选择“Microsoft Azure Service Fabric” 在详细信息中会显示应用版本Service Fabric Explorer
打开服务结构资源管理器 转到节点列表并选择一个 导航到标签Details
找到属性Code Version
您还可以通过以下方式使用此方法:
系统>fabric:/System/ClusterManagerService>详细信息>Manifest Version
【讨论】:
感谢您的反馈。我应该提到,大多数需要配置的盒子都是核心的,没有 UI,但即使有,我仍然需要通过脚本来完成。注册表选项可以工作:Get-ItemPropertyValue 'HKLM:\SOFTWARE\Microsoft\Service Fabric\' -Name FabricVersion【参考方案3】:通过(现代)C# API (QueryManager):
using FabricClient fabClient = new FabricClient();
var x = await fabClient.QueryManager.GetNodeListAsync("SFRole0_0");
string version = x[0].CodeVersion;
通过 Powershell:
Get-ServiceFabricNode -NodeName SFRole0_0 | Select CodeVersion
【讨论】:
以上是关于如何测试安装了哪个版本的 Service Fabric 运行时的主要内容,如果未能解决你的问题,请参考以下文章