如何测试安装了哪个版本的 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 运行时的主要内容,如果未能解决你的问题,请参考以下文章

用cxf做web service时,到底应该导入哪些包?哪个版本最好我照着网上的例子,没有一次对的,总是出现异常

你如何知道 Ubuntu 上安装了哪个版本的 GTK+?

如何检查安装了哪个版本的 Keras?

创建 Service Fabric 群集后启用反向代理

如何确定安装了哪个版本的 Direct3D?

你如何找到你的 linux 机器上安装了哪个版本的 libstdc++ 库?