如何将外部(打包的)Service Fabric 服务添加到应用程序清单

How to add an external (packaged) Service Fabric Service to Application Manifest

我们想要获取打包到通用包中的一堆外部 Service Fabric 服务。

要下载这些服务,我必须使用 vsts cli - 下载后,我可以在我下载的位置看到 ServiceManifest.xmlCode / Config 文件夹。我现在想将它们作为某种外部服务添加到我的清单中。

我应该如何修改 ApplicationManifest.xml 以便添加这些服务?

ApplicationManifest.xml<ServiceManifestImport> 节点内,您应该添加对您希望在应用程序中拥有的每个服务的引用。

<ServiceManifestImport>
  <ServiceManifestRef ServiceManifestName="ServicePkg" ServiceManifestVersion="1.0.0" />
  <ConfigOverrides />
</ServiceManifestImport>

这里有两件重要的事情需要理解:

  1. 虽然通常 ServiceManifest.xml 包含从设计角度定义的单个服务 ServiceManifest.xml 描述了一个 so-called 服务包 .这个服务包就是ApplicationManifest.xml.

  2. 里面引用的东西
  3. ServiceManifestName属性的值是ServiceManifest.xml的名称。 ServiceManifest.xml 名称是使用 ServiceManifest/@Name 属性在其中定义的。同时 ServiceManifestName 属性定义了相对于 ApplicationManifest.xml 位置的目录名称,其中 ServiceManifest.xmlCodeConfig 和其他文件夹所在。

这是一个简单的例子

假设您 assemble 在 C:\MyPackage 目录中有一个包,并且您想要使用在 ServiceManifest.xml.

中具有 Service1 名称的外部服务
  1. 您要做的第一件事是将此服务添加到 ApplicationManifest.xml
    <ServiceManifestImport>
      <ServiceManifestRef ServiceManifestName="Service1" ServiceManifestVersion="1.0.0" /> 
      <ConfigOverrides />
    </ServiceManifestImport>
    
  2. 现在您将 ApplicationManifest.xml 复制到 C:\MyPackage 目录。
  3. 然后创建一个C:\MyPackage\Service1目录并将ServiceManifest.xmlCode等复制到C:\MyPackage\Service1.
  4. 为了确保一切正常,您执行 PowerShell cmdlet Test-ServiceFabricApplicationPackage C:\MyPackage

希望这对您有所帮助。