本地集群不允许在本地服务结构集群中具有不同版本的相同应用程序类型

Local cluster does not allow same application type with a different version in local service fabric cluster

以下 post(在 whosebug.com 上):

建议可以并排安装具有不同版本的相同应用程序类型。我尝试在我的本地集群上安装新版本的应用程序(fabric:/ServiceFabApp1,新版本为 2.0.0 和 ServiceFabApp1Type)(该集群已经具有相同的应用程序名称和相同的应用程序类型,版本为 1.0.3,即 fabric:/ ServiceFabApp1 的现有版本为 1.0.3 和 ServiceFabApp1Type) 并出现以下错误:

名称为 'fabric:/ServiceFabApp1' 的应用程序已经存在,其类型为 'ServiceFabApp1Type',版本为 '1.0.3'。 您必须先删除现有应用程序,然后才能部署或提供新应用程序 应用程序的新名称。

这是设计使然,应用程序类型(对于多个版本)可以相同但每个版本的应用程序名称必须不同?或者它根本不能在本地集群上工作但在 azure 云中工作?还是我对上面link中信息的理解有误?

部署 SF 应用程序时,有几个步骤: 1.复制应用包到服务顺丰镜像仓库 2. 拨备申请 3. Deploy/upgrade申请

第 1 步只是将包复制到 SF 集群映像存储。 步骤 #2 提供应用程序的新版本,以便 SF 可以部署该应用程序,或者升级现有应用程序(如果已部署)。 第 3 步取决于您之前做过的事情。如果您已经部署了应用程序的版本 X,则无法部署版本 X+1。你只能upgrade/downgrade。

如果您需要 运行 具有相同版本的多个应用程序实例,您将需要创建不同的程序包,其中应用程序的名称是唯一名称(多租户场景)。

Application types(例如 ServiceFabricApp1Type)可以有一个或多个版本,但应用程序 instance(例如 fabric:/ServiceFabricApp1)一次只能运行一个版本。

因此,如果您想在本地集群中拥有两个不同版本的应用程序类型 运行,您将需要两个不同的应用程序实例,例如,您可以拥有 fabric://ServiceFabricApp1 运行 版本 1.0.0 和 fabric:/ServiceFabricApp2 运行 版本 2.0.0。使用 VS 工具执行此操作的最简单方法是创建两个应用程序参数文件,每个文件定义一个不同的应用程序实例名称。然后,您可以选择以您正在构建的当前版本为目标的当前实例。要在 VS 中的类型版本之间来回移动,您可能只想为每个版本创建一个分支。