Развертывание сервера MySQL с приложением VisualStudio 2005 - PullRequest
6 голосов
/ 11 февраля 2011

У меня есть проект Visual Studio 2005 (C #), который использует MySQL в качестве механизма хранения данных, я хотел бы создать пакет MSI для установки приложения и после установки MySQL без вывода сообщений. Я изучал это, но я не мог найти много информации.

Я установил пакет MySQL в автоматическом режиме и после настройки его с этими двумя параметрами в CMD

Установка:

msiexec /qb /i "c:\mysql.msi" /l* d:\log_mysql_test.txt INSTALLDIR=d:\mysql_test_mdps

Настройка:

D:\mysql_test_mdps\bin\MySQLInstanceConfig.exe -i -q "-lD:\mysql_config_log.txt" "-pD:\mysql_test_mdps\bin" "-tD:\mysql_test_mdps\my-template.ini" "-cD:\mysql_test_mdps\my.ini" -v5.5.9 ServerType=DEVELOPMENT DatabaseType=MIXED ConnectionUsage=DSS Port=53306 ServiceName=MySQL_AGM RootPassword=root1234 SkipNetworking=no AddBinToPath=yes

Но сейчас я не знаю, как сказать Visual Studio, что делать это до или после установки моего приложения. Я гуглял, но не смог найти никакой полезной помощи.

Я надеюсь, что вы можете вести меня:)

РЕДАКТИРОВАТЬ: Я работал над решением с пользовательскими действиями, я нашел эту статью , которая использует пользовательский класс установщика для выполнения пользовательских действий. Вначале все выглядит хорошо, но у меня проблема, потому что, когда мой пакет MSI пытается запустить второй установщик MSI (MySQL), я получаю сообщение об ошибке с кодом 2869, который говорит: «Доступ запрещен».

Я также искал эту проблему и, похоже, когда первый MSI пытается запустить второй MSI, он не применяет нужные привилегии, и установка завершается неудачно ...

Вы знаете, что я могу сделать? или как я могу запустить второй установщик MSI? с полными привилегиями (или, по крайней мере, такими же, как у первого установщика)

это код, который я использую для создания объекта Process.

string arg1 = "/qb /i \"" + filepath + "\" /l* \"" + Path.Combine(installpath, logfile) + "\" INSTALLDIR=\"" + installpath + "\"";

Process p = new Process();
p.StartInfo.FileName = "msiexec.exe";
p.StartInfo.Arguments = arg1;
p.Start();

Ответы [ 2 ]

3 голосов
/ 22 февраля 2011

Вам не нужно запускать другой файл msiexec.exe.Visual Studio также позволяет использовать исполняемый файл в качестве настраиваемого действия.Так что пользовательские действия

см. Ниже.Изображение взято из этой ссылки : Custom Action

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

Ознакомьтесь с ответом 0xA3 по этой ссылке.
Запуск другой программы из проекта установки c #

И это не сложно, как кажется.:)

Еще несколько ссылок для добавления необходимых компонентов в загрузчик:
Создание пользовательского пакета загрузчика для Visual Studio 2005
Установка и развертывание Visual Studio: добавление предварительных требований

Плюс вы должны взглянуть на это:
Установка MYSQL с приложением .NET winforms

1 голос
/ 11 февраля 2011

Вы используете установщик Visual Studio?Если это так, вам нужно перейти к , щелкнуть с помощью правой кнопки мыши в установщике Solution Explorer ), затемперейдите к Просмотр и нажмите Настраиваемые действия в контекстном меню.

Новое дерево с Настраиваемые действия должно появиться в центреэкран.Затем вы можете щелкнуть правой кнопкой мыши любую из папок (в зависимости от того, когда вы хотите добавить действие) и выбрать Добавить настраиваемое действие ...

Надеюсь, это полезно для вас ...

...