我有一个使用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
Run Code Online (Sandbox Code Playgroud)
配置:
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
Run Code Online (Sandbox Code Playgroud)
但是现在我不知道如何说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();
Run Code Online (Sandbox Code Playgroud) 我们需要为我们的应用程序创建安装程序.目前我们正在使用Visual Studio 2010免费提供的Install Shield LE.我们需要Install Shield的一些非免费功能,并且正在考虑升级到完整版.
但是,在我们升级之前,我们想考虑其他选择.通过与办公室周围的其他人交谈,他们提到了MSI.我是安装人员的新手,所以如果你们对MSI或Install Shield有任何意见,我很好奇.
安装程序要求:
1.必须支持自定义操作
2.必须支持对话框
3.我们还需要在运行时从用户处获取信息并将其放入配置文件中.不知道如何做到这一点.我认为Install Shield有安装脚本吗?
如果它支持多种语言,那将是一个巨大的奖励
任何输入将不胜感激.
谢谢
windows-installer installshield installscript installscript-msi