使用Visual Studio 2005应用程序部署MySQL服务器

时间:2011-02-11 12:48:38

标签: c# mysql setup-deployment installscript-msi

我有一个使用MySQL作为数据存储引擎的Visual Studio 2005项目(C#),我想创建一个安装该应用程序的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在安装我​​的应用程序之前或之后都这样做。我一直在谷歌,但我找不到任何有用的帮助。

我希望你能指导我:)。

编辑:我一直在使用自定义操作解决方案,我发现这个article使用自定义安装程序类来执行自定义操作。它看起来很好,但我得到一个问题,因为当我的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 个答案:

答案 0 :(得分:3)

您不需要启动另一个msiexec.exe。 Visual Studio还允许您将可执行文件用作自定义操作。所以自定义动作

见下文。图片来自linkCustom Action

在上面的链接中查看将可执行文件调用为自定义操作部分。现在,如果这不起作用,则修改默认引导程序

在此链接中查看 0xA3 的回复。
Running another program from c# setup project

它看起来并不复杂。 :)

为引导程序添加先决条件的更多链接:
Authoring a Custom Bootstrapper Package for Visual Studio 2005
Visual Studio Setup & Deployment: Adding Pre Requisits

另外你应该看看这个:
MYSQL installation with a .NET winforms app

答案 1 :(得分:1)

您使用的是Visual Studio Installer吗? 如果是这样,您必须使用安装程序上的右侧鼠标按钮(在解决方案资源管理器点击 >),然后转到查看,然后点击上下文菜单中的自定义操作

屏幕中央应显示带有自定义操作的新树。然后,您可以右键单击任何文件夹(具体取决于您要添加操作的时间),然后选择添加自定义操作...

希望这对你有帮助......