【问题标题】:.net 2.0 setup project with custom action and InstallState file具有自定义操作和 InstallState 文件的 .net 2.0 安装项目
【发布时间】:2012-08-28 06:12:32
【问题描述】:

在我的应用程序中,我有一个 Windows 窗体应用程序和两个 Windows 服务。目前我正在使用 .net 安装项目来安装应用程序和 Windows 服务。我添加了自定义操作,它打开 Windows 窗体并接受 SQL 服务器详细信息来为应用程序创建 SQL 数据库。
如果用户关闭或单击表单上的取消按钮以取消安装向导,我将提出 InstallException
我面临的问题是在使用 InstallException 取消安装向导后,它给出错误“错误 1001。找不到文件'C:\Program Files (x86)\MyApp\MyService1.InstallState'。”为我的两个 Windows 服务一个一个。
对于临时解决方案,我保留了两个 InstallState 文件并在我的安装项目中手动添加,这将两个 InstallState 文件添加到安装目录。
它工作了几个月。但是在应用程序进行了一些更改之后,它开始给我一些其他错误“错误 1001。找不到元素 ArrayOfKeyValueOfanyTypeanyType System.Collections.Hashtable 的对象类型”
我发现它需要再次为更改添加新的 InstallState 文件。

我认为这不是手动添加 InstallState 文件的正确方法。 在我的设置项目中是否有其他想法可以解决这个问题?

如果用户在安装时取消安装向导,我需要回滚 SQL 数据库更改(创建数据库),如果用户取消卸载向导,它不应该删除数据库。

提前致谢。

【问题讨论】:

  • 请将您的解决方案添加为答案,并将其标记为已接受。

标签: windows installation


【解决方案1】:

我自己解决了这个问题。自定义操作序列是

1)自定义动作 dll
2)Windows 服务 1
3)Windows 服务 2

我将顺序更改为
1)Windows 服务 1
2)Windows 服务 2
3)自定义动作dll

我认为它试图回滚 Windows 服务状态并且在第一种情况下没有安装 Windows 服务

【讨论】:

    猜你喜欢
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 2012-01-26
    • 1970-01-01
    相关资源
    最近更新 更多