Внутри узла <ServiceManifestImport>
в ApplicationManifest.xml
вы должны добавить ссылки на каждую службу, которую вы хотели бы иметь в своем приложении.
<ServiceManifestImport>
<ServiceManifestRef ServiceManifestName="ServicePkg" ServiceManifestVersion="1.0.0" />
<ConfigOverrides />
</ServiceManifestImport>
Вот две важные вещи, которые нужно понять:
В то время как в общем случае ServiceManifest.xml
содержит определение отдельной услуги с точки зрения проектирования, ServiceManifest.xml
описывает так называемый пакет услуг . Этот сервисный пакет - вещь, на которую ссылаются ApplicationManifest.xml
.
Значением атрибута ServiceManifestName
является имя ServiceManifest.xml
. ServiceManifest.xml
имя определяется внутри него с помощью атрибута ServiceManifest/@Name
. В то же время атрибут ServiceManifestName
определяет имя каталога относительно местоположения ApplicationManifest.xml
, где расположены ServiceManifest.xml
, Code
, Config
и другие папки.
Вот краткий пример
Представьте, что вы собрали пакет в каталоге C:\MyPackage
и хотите использовать внешнюю службу с именем Service1
в ServiceManifest.xml
.
- Первое, что вы делаете, это добавляете этот сервис к
ApplicationManifest.xml
<ServiceManifestImport>
<ServiceManifestRef ServiceManifestName="Service1" ServiceManifestVersion="1.0.0" />
<ConfigOverrides />
</ServiceManifestImport>
- Теперь вы копируете
ApplicationManifest.xml
в C:\MyPackage
директорию.
- Затем вы создаете каталог
C:\MyPackage\Service1
и копируете ServiceManifest.xml
, Code
и т. Д. В C:\MyPackage\Service1
.
- Чтобы убедиться, что все в порядке, вы выполняете командлет PowerShell
Test-ServiceFabricApplicationPackage C:\MyPackage
Надеюсь, это поможет.