簡體   English   中英

部署Service Fabric群集使用本地加載的組件,而不是安裝所需的組件

[英]Deploying Service Fabric Cluster With locally loaded components instead of installing the required components

在部署Service Fabric Cluster時,我遇到了以下問題。

Connect-ServiceFabricCluster:嘗試加載格式不正確的程序。 (來自HRESULT的異常:0x8007000B)在XXYYZZ(腳本路徑) :62 char:2 + Connect-ServiceFabricCluster @ConnectionParams + ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified :( :) [Connect-ServiceFabricCluster],BadImageFormatException + FullyQualifiedErrorId:CreateClusterConnectionErrorId,Microsoft.ServiceFabric.Powershell.ConnectCluster

當我們安裝了必需的模塊時,Actuall它運行得很好https://www.microsoft.com/en-in/download/details.aspx?id=30679
http://www.microsoft.com/web/handlers/webpi.ashx?command=getinstallerredirect&appid=MicrosoftAzure-ServiceFabric-CoreSDK

但我們希望從系統安裝服務結構集群,其中系統沒有所需的Service Fabric組件(在上面的組件中)。 現在我們通過將dll放在特定文件夾中並使用名為Import Module的命令,通過Import-Module命令加載這些組件/ modules / dll。 我可以知道,我該如何解決這個問題。

我正在做同樣的事情,並且不想在我們的構建系統上安裝Service Fabric SDK。 經過一些試驗和錯誤后,我終於做對了:我已將必要的Service Fabric Tools和SDK文件放入源代碼控制中,在構建期間檢查這些工具,然后在調用Connect-ServiceFabricCluster之前從兩者中導入PowerShell模塊。 我意識到將二進制文件和相關文件放入VCS並不是一個很好的解決方案:將來我會喜歡使用像Artifactory這樣的東西。

這是解決方案的詳細信息。

首先,將必要的工具放入VCS:

  1. 在VCS工作副本中創建一個包含兩個子文件夾的文件夾:Tools和SDK。
  2. 將%WINDIR%\\ System32 \\ WindowsPowerShell \\ v1.0 \\ Modules \\ ServiceFabric的內容復制到Tools子文件夾
  3. 將所有DLL從C:\\ Program Files \\ Microsoft Service Fabric \\ bin \\ Fabric \\ Fabric.Code復制到Tools文件夾中
  4. 將所有文件從C:\\ Program Files \\ Microsoft SDKs \\ Service Fabric \\ Tools \\ PSModule \\ ServiceFabricSDK復制到SDK文件夾中。
  5. 將所有這些文件添加到VCS工作副本中
  6. 將更改提交給VCS(如果適用則推送)

第二步:將工具添加到您的構建中

第三:在PowerShell腳本中導入工具和SDK模塊(我假設Service Fabric工具和SDK位於相對於當前工作目錄的ServiceFabric子文件夾中):

Import-Module ServiceFabric\Tools\Microsoft.ServiceFabric.Powershell.dll
Import-Module ServiceFabric\SDK\ServiceFabricSDK.psm1

這里有一些最后的想法:我使用64位版本的Windows 7,我們所有的構建機器都是64位。 老實說,我不知道是否存在32位版本的Service Fabric SDK和工具。 無論如何,您需要確保使用的是64位版本的PowerShell。 我們使用TeamCity,我明確將Powershell運行模式Bitness設置為x64。

Service Fabric項目附帶的Deploy-FabricApplication.ps1腳本嘗試通過讀取SDK路徑的注冊表項然后調用Import-Module來加載Service Fabric SDK模塊。 由於構建機器沒有安裝SDK,我還將此腳本的修改副本添加到VCS,注釋掉讀取注冊表並加載模塊的行,然后使用-UseExisingClusterConnection參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM