Я уже шел этим путем, и, к сожалению, вам нужно будет создать пул приложений вручную или написать настраиваемое действие, чтобы управлять этим для вас.
В дополнение к вопросу Грзенио в комментариях ниже:
«Не могли бы вы дать мне подсказку, с чего начать поиск классов кода / помощника? И оставляете ли вы свой проект в проекте веб-настройки или просто используете стандартный проект установки приложения?»
Я добавил новый проект с именем InstallHelper
в решение, содержащее проект установки. В этом проекте я создал класс с именем InstallActions
, производный от:
System.Configuration.Install.Installer
(MSDN) .
Существует четыре метода, которые вы можете переопределить в базовом классе Installer
, чтобы позволить вам задавать пользовательские действия в зависимости от того, находитесь ли вы в фазах установки, фиксации, удаления или отката во время работы установщика.
Я также добавил несколько диалоговых окон с текстовыми полями в пользовательский интерфейс проекта установки. Ввод и состояние, полученные из этих диалогов, передаются в пользовательское действие установки через словарь. i.e.:
using System.Collections.Specialized;
using System.ComponentModel;
using System.Configuration.Install;
using System.Windows.Forms;
namespace InstallHelper
{
[RunInstaller(true)]
public partial class PostInstallActions : Installer
{
public override void Install(IDictionary state)
{
base.Install(state);
// Do my custom install actions
}
public override void Commit(IDictionary state)
{
base.Commit(state);
// Do my custom commit actions
}
public override void Uninstall(IDictionary state)
{
base.Uninstall(state);
// Do my custom uninstall actions
}
public override void Rollback(IDictionary state)
{
base.Uninstall(state);
// Do my custom rollback actions
}
}
}
Чтобы добавить проект настраиваемого действия в проект установки, откройте средство просмотра и редактора настраиваемых действий и укажите выходные данные из проекта InstallHelper
.
Это основы, и вы должны начать. Проект веб-настройки также поддерживает настраиваемые действия и дополнительные диалоговые окна ввода пользователя, поэтому вы можете захотеть повторно использовать существующий проект в дополнение к настраиваемому действию.