BizTalk Server 專案版本管理
使用.NET Framework進行開發時,版本控制是由一組標準規則所控管,可讓版本號碼變更的影響降到最低。 視部署 .NET Framework 應用程式或元件的方式而定,應用程式組態檔、XCOPY 安裝或其他.NET Framework部署機制可以處理相依性。 如下列各節所示,BizTalk Server為版本設定和相依性增加額外的複雜度。
變更版本號碼的影響
在.NET Framework開發中,通常會在組建發生時,將元件版本號碼更新為目前的組建編號。 然而,在開發 BizTalk 解決方案時,變更組件版本號碼有可能會將組件與透過其組件版本號碼來參考 DLL 的相依項目之間的關係中斷。 下表列出使用BizTalk Server元件版本號碼參照的專案,以及變更元件版本號碼的效果。
實體 | 變更組件版本號碼所產生的影響 |
---|---|
繫結檔案 | 變更組件版本號碼會導致任何參考組件的現有繫結檔案無法執行。 這是因為繫結檔案會透過包含版本號碼的屬性來參考組件。 您可以使用「記事本」或其他編輯程式來更新繫結檔案中的版本資訊。 您也可以重新部署方案,然後使用 BizTalk Server 管理主控台重新產生系結檔案。 最後,您可以使用指令碼,自動化部署與版本管理的作業。 如需部署的詳細資訊,請參閱 部署和管理 BizTalk 應用程式。 |
BAM 追蹤設定檔定義 (.btt) 檔案 | 變更組件版本號碼會導致任何現有的 BAM 追蹤設定檔定義檔案無法執行。 由於 BAM 追蹤檔為二進位檔案格式,您無法加以編輯,只能重新產生新的追蹤檔。 如果需要 BAM 追蹤設定檔,則您可能需要進行下列任一項動作: - 避免在建置程式期間經常更新版本號碼。 - 延遲建置 BAM 追蹤設定檔,直到版本號碼穩定為止。 |
使用 Web 服務發佈精靈來發佈 Web 服務 | 當 Web 服務發佈精靈用來產生 ASP.NET Web 介面時,BizTalk Server元件的元件版本會包含在 ASP.NET 原始程式碼中。 元件版本號碼會在執行時間由 ASP.NET 介面當做 Web 服務作業 bodyTypeAssemblyQualifiedName 屬性的一部分使用。 如果BizTalk Server元件的版本號碼變更而不更新bodyTypeAssemblyQualifiedName屬性,則後續的 Web 服務作業將會遭到BizTalk Server拒絕。 如果接收位置是使用 XmlDefaultPipeline,則訂閱將依賴文件類型。 訂閱是使用內嵌組件資訊,如果組件不存在的話,訂閱將無法執行。 如果您是使用 PassThruPipeline (即為當您公開連接埠,並讓精靈建立接收位置時的預設值),則訂閱會忽略這項內嵌組件資訊。 |
若要深入瞭解BizTalk Server元件和部署,請參閱BizTalk 元件。
版本管理的方法
規劃專案時,您可以選擇進行下列任一項作業:
為某個特定的傳遞標的選擇一個固定的組件編號,且僅遞增檔案版本號碼
在開發階段,同時遞增組件版本與檔案版本
下表為這些方法的比較示意圖。
固定組件版本,動態檔案版本 | 動態組件版本,固定或動態檔案版本 |
---|---|
組件版本號碼 = 固定編號 檔案版本號碼 = 組建編號 |
組件版本號碼 = 組建編號 檔案版本號碼 = 組建編號 |
如果已安裝多個元件,BizTalk Server執行時間可能會挑選錯誤的元件版本。 | BizTalk Server一律會執行最新版本的元件,即使已安裝多個元件也一樣。 |
任何時候都只能部署一種解決方案版本。 | 不同版本的解決方案可以一併部署 (雖然解決方案之間的其他部分,例如結構描述定義,有可能會彼此衝突)。 |
BizTalk 主控件需要重新啟動,才能強制載入更新的組件。 | 強制BizTalk Server載入新的元件。 |
建立新的部署作業時比較不費力,因為參考組件版本號碼的檔案 (例如繫結檔案與追蹤設定檔) 不需要加以編輯。 | 部署作業比較費力,因為參考組件版本號碼的檔案需要保持更新為最新版本。 |
如果您要建立一個系統原型,或是開發任何其他類型之工程專用專案,可以選擇使用固定的組件版本與動態檔案版本方法。 如果您不打算將應用程式傳遞給一般使用者,可以將組件版本固定下來,並遞增檔案版本號碼來簡化部署作業並降低相依性被破壞的可能性。 針對版本追蹤,請務必記得為每個組建遞增檔案版本號碼。
如果您所建立的專案將會傳遞給一般使用者,應該要考慮遞增組件版本,並且選擇性地將有意義的檔案版本號碼儲存起來。 雖然這個方法在修改組建編號以及與其關聯之相依性時會增加額外的工作,卻能夠確保您的組件已更新至最新的版本。 透過使用自動化的部署指令碼,您可以降低版本管理的影響。 若要檢視部署範例,請參閱應用程式部署 (BizTalk Server 範例資料夾) 。
注意
您所選擇的版本管理機制,應該要能夠確保傳遞正確的檔案,同時簡化維護與功能增強作業。
對應功能版本編號
您可以使用 腳本 運算質,從對應內叫用 .NET 元件。 這個方法可以提供很大的彈性,允許開發人員解決許多不同的自訂對應問題。 它也給對應賦予獨特的限制,就是它不只必須從內部參考組件類型名稱,同時也必須從內部參考所叫用的完整組件版本號碼。 如此一來,如果對應所呼叫的組件版本號碼變更了,所有參考該組件的連結也會一併中斷。
為了避免上述情況發生,如果您需要從對應呼叫組件,我們建議您建立特定的組件來專門保留對應功能,如此便能固定此組件的組件版本號碼。 採用這個方法可讓您在更新其他 helper 函式的組件版本時,維持對應的關係。
如果對應所參考的組件在對應開發後產生變更,則考慮在「對應編輯器」外更新對應檔來反映更新過的版本號碼。
使用記事本來修改對應檔以反映更新過的版本號碼
使用 [ 開始] 功能表,啟動 [記事本]。
在 [記事本] 的 [ 檔案] 功能表上,按一下 [ 開啟]。 在 [ 開啟 ] 對話方塊中,選取您要修改的對應檔案,然後按一下 [ 開啟]。
在 [編輯] 功能表上,按一下 [尋找]。 在 [ 尋找 ] 對話方塊中,輸入 Assembly=,然後按一下 [尋找下一步]。
如果某個外部組件含有指令碼參考的話,則「記事本」應該會找到如下列所示的 XML 項目:
<Script Language="ExternalAssembly" Assembly="Contoso.Scripts, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c5145e4e089" Class="Contoso.Scripts" Function="CalculateValue" AssemblyPath="Contoso.Scripts.dll"/>
更新版本號碼。 如果有多個實例,請在 [編輯] 功能表上使用[取代]。
儲存檔案。
現在您可以使用「對應編輯器」來開啟對應了。
另請參閱
部署 BizTalk 應用程式的最佳做法
Admin (BizTalk Server Samples 資料夾)
以程式設計方式部署和啟動新版本的協調流程