我正在使用Visual Studio 2005创建Windows安装程序项目.
是否有一个选项使我的项目在添加/删除程序中没有卸载选项?
我的一位客户要求我这样做.. 这就是为什么:因为安装程序是现有程序的补丁.卸载后,程序不再有效,因为已卸载已修补的文件.我们想知道是否可以禁用卸载,而不是找出恢复替换文件的方法(我们无法使用此安装程序).
您只需要使用Orca在安装程序的Property表中设置ARPSYSTEMCOMPONENT = 1 (不能直接在Visual Studio中根据我的知识完成)
这通常在程序安装依赖项时使用,并且您不希望用户手动卸载依赖项,它们需要使用您提供的特定卸载脚本或其他内容.
就个人而言,我会将补丁编写为补丁并阻止补丁被卸载.
另外,我建议你拿一本Windows安装程序的权威指南,它会给你一些关于如何,为什么以及在哪里使用这些技巧的解释.除了让您非常了解Windows安装程序的基础知识,并帮助您从长远来看设计出更好的安装程序.本书中的所有示例都使用Windows Installer SDK中的 Visual Studio +免费工具.
编辑:用户仍然可以完全控制通过MSIEXEC卸载,通过您提供的自定义卸载快捷方式,所有这一切都隐藏了添加/删除程序(ARP)中的条目
Edit2:示例VBS添加属性(如果您想在自动构建过程中执行此操作)
Dim installer, database, view Set installer = CreateObject("WindowsInstaller.Installer") Set database = installer.OpenDatabase ("test.msi", 1) Set view = database.OpenView ("INSERT INTO Property(Property.Property, Property.Value) VALUES('ARPSYSTEMCOMPONENT', '1')") view.Execute Set database = Nothing Set installer = Nothing