我为我的应用程序的P& D创建了一个标准的MSI安装程序,该安装程序使用以下组件:
安装程序工作得非常好,没有任何问题。当用户尝试使用MSI安装程序在现有应用程序上再次安装应用程序时,会出现此问题。目前,它提出了2个选项“修复”& “去掉”。这两个选项都不起作用并破坏了已安装的应用程序。
我想要的是跳过此屏幕并显示类似MessageBox的内容,说明已安装应用程序。因为我不是必须向用户提供修复选项。 至少我应该能够隐藏或以某种方式不提供修复选项。
对我有任何帮助或建议?所以,到目前为止,我已经尝试了很多东西,比如使用ORCA添加NotRepair属性等等。但是没有一个能够工作。
答案 0 :(得分:5)
在MSDN上查看 Windows Installer指南以获取这两个属性:
答案 1 :(得分:4)
接受的答案为没有大量安装经验的人留下了一些东西。
为了做到这一点,你必须在.NET安装版本创建后编辑.MSI。 Microsoft支持的简单方法是Orca。您可以从.NET Framework SDK安装Orca。如果您认为已经拥有SDK,但在开始菜单中没有Orca,则在您的计算机上搜索“Orca.exe”或“Orca.msi”。
安装Orca后,只需运行它即可。使用Orca UI打开您的MSI文件。在左侧,您将看到“表格”列表。选择表 Property 。在右侧窗格中,右键单击并添加。添加名为ARPNOREPAIR
的节点。确保将值设置为空字符串""
。如果您不希望更改选项显示在您的程序的窗口中,还要为ARPNOMODIFY
添加一个节点。
答案 2 :(得分:1)
现在已经有几年意识到这个问题了,但我想像我这样的人仍然会遇到这个问题。 Sumeet在对已接受的解决方案的评论中提到用户仍然能够通过显示的“修复”和“删除”两个选项进入屏幕。
事实上,用户可以通过三种不同的方式访问应用程序的安装程序。
一: 正如已经回答的那样ARPNOMODIFY和ARPNOREPAIR修复了“仅添加删除程序”中的问题,可以使用“Orca.exe”来完成。
二: 右键单击msi的安装程序。遗憾的是,如果没有在计算机范围内对所有msi文件进行调整,这似乎无法避免这两种选择。
三: 通过双击安装程序,如果已经安装,则会出现一个带有单选按钮“修复”和“删除”的屏幕。
在下面找到了这个简洁的适应性来解决第三个访问点,有点重写,在这里:http://us.generation-nt.com/there-way-disable-remove-repair-option-through-orca-project-properties-help-49010162.html。它以图形方式删除了允许修复选项的选择。我要感谢保罗·布伦为此而感谢。
1
添加密钥“ARPNOMODIFY”。1
添加密钥“ARPNOREPAIR”。Repair
更改为Remove
。{\VSI_MS_Sans_Serif13.0_0_0}Select "Finish" to remove [ProductName]
CancelButton
更改为FinishButton
。与执行上述步骤相关的可能是自动执行使用仅执行一次步骤所获得的变换来调整msi的过程。有关如何执行此操作的详细信息,请访问:Use Orca to edit msi from command line?
答案 3 :(得分:1)
我同意Henrik,但在我的情况下,最后一步
使用Dialog_' MaintenanceForm'查找并删除条目。和Control' RepairRadioGroup'。
导致2814错误。
所以我的建议是:使RepairRadioGroup不可见。要做到这一点,只需设置它,s Attribute为0
UPDATE Control SET Attributes = 0 WHERE Control =' RepairRadioGroup'
答案 4 :(得分:1)
如果你通过installshield编辑你的ISM文件,今天就容易多了。要从“添加/删除程序”屏幕中停用Change
和Repair
按钮,请将以下设置设置为Yes
标签上的Installation Designer
>导航窗格中的Installation Information
节点>导航窗格中的General Information
节点>详细信息窗格中的Add or Remove Programs
部分
答案 5 :(得分:0)
我在一个EXE文件中包装了setup.exe和MSI。点击后提取文件并触发Setup.exe。在那个exe中,我添加了一个代码来检查应用程序是否已经安装在机器中。如果安装它我提示用户并退出。这样,如果已经安装了应用程序,MSI永远不会启动,因此修复和删除屏幕永远不会出现。关于“添加/删除”屏幕中的“更改”按钮,我使用了“CheGueVerra”提供的解决方案。谢谢你。