Как отключить создание службы по умолчанию для службы актера?

Каждый раз, когда я создаю решение с помощью службы Actor (с сохранением состояния), эта служба автоматически добавляется в раздел ApplicationManifest.xml DefaultServices.

Как я могу отключить это поведение для служб, которые я хочу создать вручную?

Я попытался изменить ServiceManifest.xml службы Actor, удалив тег <DefaultService>, но он также автоматически добавляется обратно при каждой сборке.


person Juho Hanhimäki    schedule 14.04.2016    source источник
comment
Следование маршруту msbuild решило эту проблему? Я сталкиваюсь с той же проблемой   -  person Peter Lea    schedule 04.05.2017
comment
Я не знаю, так как я никогда не пробовал маршрут msbuild. Не хотелось тратить время на эту проблему, так как это лишь незначительное раздражение для меня. В любом случае должен существовать более простой способ сделать это, чем возиться с msbuild.   -  person Juho Hanhimäki    schedule 13.05.2017


Ответы (1)


Все службы автоматически устанавливаются по умолчанию. Вы не можете отключить только эту функцию. Лучшим вариантом было бы вставить некоторую логику MSBuild, которая обновляет файл манифеста приложения после того, как эти нежелательные изменения были применены к файлу. Вы можете интегрировать это в основную логику упаковки, чтобы она автоматически выполнялась при публикации или F5 из VS.

Для этого вы можете добавить цель MSBuild в свой файл .sfproj:

<Target Name="AfterPackage" AfterTargets="Package">
  <!-- Insert your MSBuild logic here -->
</Target>

Вставив туда свою собственную логику MSBuild, вы можете внести необходимые изменения в файл манифеста приложения и выполнять эти изменения неявно всякий раз, когда VS запускает операцию пакета. Итак, в вашем случае вы можете обновить файл, чтобы служба не была определена как служба по умолчанию. Путь к папке пакета можно определить с помощью свойства PackageLocation MSBuild.

person Matt Thalman    schedule 14.04.2016