У меня есть проект 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();