【问题标题】:How to test which version of Service Fabric Runtime is installed如何测试安装了哪个版本的 Service Fabric 运行时
【发布时间】: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 更新还是什么?

【问题讨论】:

    标签: windows-server-2016 azure-service-fabric


    【解决方案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】:

    有几种方法可以识别当前安装的版本:

    1. 注册表项

      • 打开注册表编辑器 (regedit)
      • 导航到:Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Service Fabric
      • 找钥匙:FabricVersion
      • 您也可以通过 powershell 进行操作:Get-ItemPropertyValue 'HKLM:\SOFTWARE\Microsoft\Service Fabric\' -Name FabricVersion
    2. 二进制版本

      • 转到运行时安装文件夹,如下所示:C:\Program Files\Microsoft Service Fabric\bin\
      • 找到应用程序FabricHost.exe并点击属性,进入选项卡详细信息,版本将在此处列出
    3. 已安装的应用程序

      • 转到控制面板 > 程序 > 程序和功能
      • 在列表中搜索“Fabric”并选择“Microsoft Azure Service Fabric”
      • 在详细信息中会显示应用版本
    4. 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-05
      • 2018-05-04
      • 2019-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多