我已经在Service Fabric应用程序中增加了其中一项服务的版本。
但是,当我尝试升级群集时,出现以下错误:
The content in CodePackage Name:Code and Version:1.0.0 in Service Manifest
3>'MYAPPLICATION.ServiceFabricPkg' has changed, but the version number is the same.
3>At C:\Program Files\Microsoft SDKs\Service
3>Fabric\Tools\PSModule\ServiceFabricSDK\Publish-UpgradedServiceFabricApplication.ps1:135 char:38
对我来说,这是一个很大的问题,因为Service Fabric的最畅销点之一是能够更新一项服务而又不影响其他服务。
有人知道解决方案吗?
研究指出与压缩有关的错误,所以我添加了
<CopyPackageParameters CompressPackage="false" />
到我的Local5Node.xml文件。
这没什么区别。
我正在尝试通过在Visual Studio 2017中发布来做到这一点。
欢呼
保罗
答案 0 :(得分:1)
之所以会这样,是因为您已经更新了服务二进制文件,并且没有用新的版本号更新清单,清单与以前一样指向相同的版本,但是二进制文件是不同的。
Service Fabric使用清单版本来识别在应用程序升级期间应更新哪些服务,因为您没有设置新版本并且二进制文件已更改,它将回滚以避免出现问题。
对此错误进行快速搜索会返回一些结果,并说明其原因,请查看以下答案:
Error while upgrading Azure Service Fabric through VSTS CI/CD
Deployment for Service Fabric service version upgrade fails on VSTS Release
答案 1 :(得分:0)
我认为在更新服务代码,在ServiceManifest.xml
中更新代码版本但未在ApplicationManifest.xml
中更新应用程序版本时,您可能会遇到问题。
以下是将服务从1.0.0版本更新到1.1.0的示例。
手动方法
在ServiceManifest.xml
<CodePackage Name="Code" Version="1.1.0" />
<ServiceManifest Name="ServicePkg" Version="1.1.0" />
在ApplicationManifest.xml
<ServiceManifestImport>
<ServiceManifestRef ServiceManifestName="ServicePkg" ServiceManifestVersion="1.1.0" />
<ConfigOverrides />
</ServiceManifestImport>
<ApplicationManifest ApplicationTypeName="AppType" ApplicationTypeVersion="1.1.0" />
Visual Studio方法
希望这会有所帮助。