在 MSI 安装程序脚本中尝试/捕获
本文关键字:捕获 脚本 MSI 安装 程序 | 更新日期: 2023-09-27 17:55:26
我有一个Windows安装程序提示用户输入MySQL信息(服务器,端口,用户名,密码),并希望在完成设置之前确保参数正确。
我有一个安装程序项目,其中包含链接到安装程序类的自定义操作,并且正在"安装"方法中进行错误检查。我的错误发生在catch()
部分。
任何建议或意见非常感谢。
编辑:当我点击[下一步]时,安装程序会安装应用程序,然后提示MessageBox(如果有错误)但完成安装。我希望它回滚并调出上一个屏幕。
Edit2:从MySqlException捕获的异常是:"无法连接任何指定的MySQL主机",这是正确的,但安装程序不会返回/回滚。
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);
// parameters from installer
// generate connection string conStr
MySqlConnection conn = new MySqlConnection(conStr);
MySqlCommand cmd = new MySqlCommand();
// open connection and create database
try
{
conn.Open();
cmd.Connection = conn;
// create database
// create table
// insert values to test
}
catch (MySqlException ex)
{
//I would like this to go back to the prior page
//where it asks for user input
MessageBox.Show("There was a problem connecting to the database.");
this.Rollback(stateSaver); // not working?
}
// close connection
conn.Close();
}
要强制回滚当前安装,您可以重新引发异常。 您刚刚显示在消息框中。