Резюме: я бы потратил некоторое время на настройку схемы сборки и развертывания. Это немного впереди, но общее решение, которое может расти по мере необходимости после его установки.
Вы можете выполнить шаг 1 с помощью скрипта Ant. Сначала вы установите Ant и напишите короткий build.xml, включающий что-то вроде в этом примере . При правильной установке Ant вы просто переходите в каталог, где находится build.xml, и запускаете 'ant'.
На этапах со 2 по 6, поскольку вам необходимо очистить цель, управлять службами и т. Д., Я бы посмотрел на создание установщиков MSI или исполняемых файлов. Мой первый выбор инструмента MSI - Advanced Installer . В разделе вы увидите список функций , которые бесплатная версия позволяет вам контролировать (запускать, останавливать, устанавливать, удалять) службы Windows при установке и удалении.
(Примечание: мы использовали Advanced Installer Enterprise уже четыре года. Он постоянно совершенствуется и является продуктом исключительно высокого качества. Вы не будете разочарованы.)
Вы также можете управлять созданием MSI через Ant. Вот фрагмент из моего build.xml, который вызывает пару макросов для компиляции и развертывания одного из поддерживаемых мной продуктов:
<target name="myproduct-installer" depends="unzip-myproductdocs">
<build-ai-installer product.name="MyProduct" installer.path="setup/installs/MyProduct" project.file="MyProduct.aip" />
</target>
<target name="release-myproduct-installer">
<release-AI-installer product.name="MyProduct" installer.path="setup/installs/MyProduct" product.path="${some-predefined-target}" />
</target>
Вот макросы, использованные выше:
<macrodef name="build-ai-installer">
<attribute name="product.name" />
<attribute name="installer.path" />
<attribute name="project.file" />
<sequential>
<echo message="Making installer at @{installer.path}" />
<mkdir dir="@{installer.path}/newInstall" />
<exec dir="@{installer.path}" executable="${env.ADVANCEDINSTALLER}" failonerror="true">
<arg line="/edit @{project.file} /SetVersion ${product.version}" />
</exec>
<exec dir="@{installer.path}" executable="${env.ADVANCEDINSTALLER}" failonerror="true">
<arg line="/build @{project.file}" />
</exec>
</sequential>
</macrodef>
<macrodef name="release-AI-installer">
<attribute name="product.name" />
<attribute name="installer.path" />
<attribute name="product.path" />
<sequential>
<copy todir="@{product.path}">
<fileset dir="@{installer.path}/newInstall" />
</copy>
</sequential>
</macrodef>
В этих макросах используется переменная среды Windows с именем env.ADVANCEDINSTALLER. Более простые настройки сборки просто установят свойство Ant и сбросят 'env.' Префикс:
<property name="ADVANCEDINSTALLER" value="path-to-AdvancedInstaller.com" />
Этот уровень автоматизации приносит дивиденды, как только он запущен и работает. Но если это больше, чем нужно (я не удивлюсь), этот ответ может помочь.