安装VS2008过程中取消了安装,在回滚过程中强制关闭了该程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安装VS2008过程中取消了安装,在回滚过程中强制关闭了该程序相关的知识,希望对你有一定的参考价值。

再次安装时说“”组件已成功安装,但检测到一些安装错误,这要怎么处理啊?
就是在它回滚的时候,没等回滚结束就关闭程序了,会的帮忙解决一下呀

参考技术A 关闭防火墙,重新下载......我的VS2010可以安装

自定义 VS 2008 安装项目卸载程序

【中文标题】自定义 VS 2008 安装项目卸载程序【英文标题】:Customizing the VS 2008 Setup Project Uninstaller 【发布时间】:2011-01-05 07:03:39 【问题描述】:

我的 .NET 应用程序有一个安装项目,安装/卸载都可以正常工作,如果它们在工作时不理会的话。

但是,如果有人在卸载过程中取消卸载,回滚似乎没有得到正确处理,并且在稍后再次尝试卸载时,用户会收到空引用异常。

我想简化一下情况;我想取消用户取消正在进行的卸载的能力。这个可以吗?

谢谢, -本

【问题讨论】:

【参考方案1】:

是的,可以这样做。 MSDN 列出了several options;但是,仅修补由 Visual Studio 创建的 MSI 文件可能更简单。这可以使用 Orca 完成(您可以在 Windows SDK 文件夹中找到该工具的安装程序,通常位于 C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\orca.msi 下)。

Orca 允许您编辑 MSI 数据库表。要隐藏取消按钮,您必须在 ControlCondition 表中添加一条记录(来自here):

Dialog        | Control      | Action   | Condition
------------------------------------------------------
ProgressForm  | CancelButton | Hide     | 1

使用 Orca 添加记录的手动任务可能最好使用这样的简短 VBScript 来完成:

Set oMsi = CreateObject("WindowsInstaller.Installer")

' get path to msi from command line
strMsiFullPath = Wscript.Arguments(0)
' open transacted
Set oDB = oMsi.OpenDatabase(strMsiFullPath , 1)

' insert a record into the [ControlCondition][3] table
Set oView = oDB.OpenView("INSERT INTO `ControlCondition` " & _
    "(`ControlCondition`.`Dialog_`, `ControlCondition`.`Control_`," & _
     "`ControlCondition`.`Action`, `ControlCondition`.`Condition`) " & _
     "VALUES ('ProgressForm', 'CancelButton', 'Hide', '1')")

' clean up
oView.Execute: oView.Close: oDB.Commit
Set oMsi = Nothing

此脚本可以作为构建后步骤添加到您的安装项目(请注意,输出路径的 Visual Studio 变量中有错字):

cscript $(ProjectDir)patch.vbs $(BuiltOuputPath)

【讨论】:

好答案。你肯定给我指出了正确的方向。不幸的是,“ProgressForm”不是在卸载过程中显示进度的对话框。事实上,我浏览了对话框表中的所有对话框,并在标题中添加了数字,这样我就可以追踪这个对话框,但一点运气都没有。我的猜测是卸载进度对话框无法使用 ControlCondition 表进行编辑。不过,我很欣赏这个答案,因为它为我打开了很多定制的可能性。谢谢:)

以上是关于安装VS2008过程中取消了安装,在回滚过程中强制关闭了该程序的主要内容,如果未能解决你的问题,请参考以下文章

Windows服务安装在回滚中结束

选择多个存储过程时如何强制VS2008“生成创建脚本到项目”到多个文件?

移动测试与传统测试的区别

VS2008如何将C#写的Winform程序打包成安装包?

在 VS 中取消正在运行的构建过程

官网安装VS2015社区版,下完安装过程中出现,安装包损坏或缺失,花了很