Всем привет,
У нас есть приложение .Net 2.0 с серверной частью MySQL. Мы хотим иметь возможность развернуть MySQl и БД при установке приложения, и я пытаюсь найти лучшее решение. Текущая настройка заключается в копировании необходимых файлов в папку на локальном компьютере, а затем выполнении команд «NET START» для установки и запуска службы mysql. Затем мы восстанавливаем резервную копию БД в этот только что созданный экземпляр mysql с помощью файлов bat. Это совсем не идеальное решение, и я пытаюсь придумать что-то более надежное.
Проблемы заключаются в правах пользователя в Vista и во всевозможных мелочах, связанных с установкой и запуском службы. Он слишком хрупкий, чтобы быть надежным, или, по крайней мере, так кажется, когда я его тестирую. Это настройка типа клиент / сервер, поэтому нам нужно установить только один сервер на офис, но я хочу, чтобы он был максимально простым и с минимальным количеством экранов.
Как бы ты это сделал?





Воспользуйтесь установщиком с проработанным скриптом. Скорее всего, подойдет любой установщик, такой как Wise, InstallShield, InnoSetup и т. д.
При настройке клиент / сервер вы можете потребовать, чтобы тот, кто устанавливает сервер, установил его как администратор. Это должно решить большинство ваших проблем.
Опять же - это сервер. С клиентами может быть другая история.
Не уверен, где вы находитесь в проекте, но если это простая и небольшая база данных, вы можете подумать о ее преобразовании в SQLite. Он не идеален для операций клиент / сервер, но может сработать при небольшом объеме / транзакциях.
Мы подошли к этому по-другому. Мы делаем MySQL совместимым с xcopy, написав оболочку для генерации файла конфигурации (my.ini) перед вызовом MySQL (для правильной настройки базового пути и т. д.). Затем мы написали еще один сервис, устанавливаемый по стандартной настройке. Эта служба позаботится о запуске MySQL и другой необходимой фоновой программы (в нашем случае Apache) за нас. Поскольку MySQL развертывается нами, мы хотели иметь полный контроль над ним.