![](/img/trans.png)
[英]azure service fabric vsts release (deployment) error Application type of application '' doesn't match the application type
[英]Deployment for Service Fabric service version upgrade fails on VSTS Release
日志中出現以下錯誤。
The content in ConfigPackage Name:Config and Version:1.0.0.20180315.2 in Service Manifest 'TwoServicePkg' has changed, but the version number is the same.
我只更改了其中一個服務的代碼,所以我只更改了清單中的一個版本的代碼。
在這種情況下,通過Visual Studio進行升級沒有問題。
但是,通過VSTS升級將導致上述錯誤。
我默認為Service Fabric創建了VSTS CI / CD。 (管道:VSTS Git Repo - >構建 - >發布)
首先'提交>構建>發布'是好的。
服務結構清單版本
MyAppType: 1.0.0
OneService: Pkg 1.0.0 / Code 1.0.0 / Config 1.0.0
TwoService: Pkg 1.0.0 / Code 1.0.0 / Config 1.0.0
現在,我只修復OneService代碼。 並編輯服務結構清單的驗證。
服務結構清單版本
MyAppType: 1.0.1(*)
OneService: Pkg 1.0.1(*) / Code 1.0.1(*) / Config 1.0.0
TwoService: Pkg 1.0.0 / Code 1.0.0 / Config 1.0.0
第二次提交>構建是好的。 但發布失敗。 日志中出現以下錯誤。
The content in ConfigPackage Name:Config and Version:1.0.0.20180315.2 in Service Manifest 'TwoServicePkg' has changed, but the version number is the same.
但我沒有修改TwoService Pkg(Both Code,Config)。
此外,立即通過VS2017 IDE發布到“Azure Cloud Service Fabric Cluster”是件好事。 (當然,選中“升級應用程序”選項。)
目前的臨時解決方案是對所有(所有pkg / code / config)進行版本升級,如下所示。
服務結構清單版本
MyAppType: 1.0.1(*)
OneService: Pkg 1.0.1(*) / Code 1.0.1(*) / Config 1.0.1(*)
TwoService: Pkg 1.0.1(*) / Code 1.0.1(*) / Config 1.0.1(*)
我想構建構建管道,但它是令人困惑的。
我只使用默認的VSTS Service Fabric模板。
並僅修改發布配置文件名稱(Cloud.xml - > Cloud.Development.xml)。
您收到的錯誤顯示錯誤消息:
PACKAGENAME'在ConfigPackage服務清單內容“發生了變化,但版本號是一樣的。
這意味着:我們在這個軟件包中找到了與先前版本不匹配的東西,因為你說版本應該是相同的,它們應該匹配,所以我不知道該做什么並且會讓你解決這個問題。
這條消息不是很具有啟發性,所以乍看之下你會迷失方向。
我在這里回答了同樣的問題錯誤 - 升級 - azure-service-fabric-through-vsts-ci-cd ,請檢查答案是否可以幫助您解決問題。
我會解釋一下:
無論何時注冊應用程序,服務結構都會將正在注冊的新版本與當前服務器中的版本進行比較,如果已經存在相同的服務版本,它將比較軟件包,配置包,代碼包等,如果如果它們中的任何一個都不匹配,它將無法部署。
其中任何一個小的更改都應該觸發版本升級,例如,如果在Setting.xml中添加或刪除配置設置,則必須升級配置文件的版本和服務清單中的版本。
之前:
app1 -------> 1.0.0
service1 -> 1.0.0
code ---> 1.0.0
config -> 1.0.0
后
app1 -------> 1.0.1
service1 -> 1.0.1
code ---> 1.0.0
config -> 1.0.1
對於代碼包,同樣的情況發生,如果您同時升級代碼和配置,您應該只升級服務清單一個版本,如:
app1 -------> 1.0.1
service1 -> 1.0.1
code ---> 1.0.1
config -> 1.0.1
這里最棘手的挑戰是代碼更改,每當觸發新構建時,構建將下載源並編譯所有內容,您知道基於提交更改已發生的變化,但是對於構建,一切都將生成程序集,因此它不會如果它改變與否,它將生成一個新的程序集,盡管代碼與之前的構建相同,但大多數時候的輸出二進制文件將是不同的。
通過應用程序注冊,如果版本保持不變,這些二進制文件應該與現有的二進制文件相匹配,不會發生什么。 為了解決這個問題,差異化包裝加入了派對,我不會在這里提供太多細節,因為這個答案超出了范圍,但是你可以獲得有關這些鏈接的更多信息:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.