我有一个.NET 3.5安装程序包项目,它可以成功安装我的应用程序。
安装程序包部署了一个(大约70个)自定义文件,以便在应用程序中使用。
我不时要求删除其中一些文件,但是在重新启动可执行文件后,它会再次自动运行一部分安装MSI,并重新安装这些文件。
目前我能达到预期结果的唯一方法是在启动可执行文件后删除文件。
我查看了安装程序包中文件的属性,例如Vital和PackageAs,但似乎无法确定实现此目的所需的设置。
有没有人知道实现这个目的需要什么?
非常感谢
答案 0 :(得分:2)
来自http://msdn.microsoft.com/en-us/library/kz0ke5xt%28v=VS.100%29.aspx
” 如何关闭用户需要修改或删除的文件的修复?
Visual Studio会创建通告的快捷方式,以便在程序启动时验证其所有文件是否存在。若要更改此行为并导致其不修复该文件,请在安装项目中选择文件并将Condition属性更改为NOT REINSTALL,以便在修复时将文件重新安装,并将其Transitive属性更改为TRUE,以便条件为重新评估。这将导致安装程序在删除文件后第一次在屏幕上闪烁,因为它会验证不应重新安装该文件,但之后您将看不到安装程序。 “
答案 1 :(得分:1)
这也让我感到恼火,我不知道为了防止这种情况需要改变的具体设置,但我可以告诉你一个我用过的解决方法。我发现只有当我从作为安装的一部分安装的快捷方式运行应用程序时才会发生这种情况。因此,如果您创建一个新的应用程序快捷方式并通过该快捷方式运行它,那么您删除的文件将不会自动恢复。
答案 2 :(得分:0)
Windows Installer支持三种类型的产品升级:主要升级,次要升级和小更新。在什么情况下可以在此处找到升级使用的概要:http://helpnet.flexerasoftware.com/robo/projects/installshield12helplib/MajorMinorSmall.htm
您要做的是设置安装程序,使新版本的软件将文件删除视为升级到先前版本。如果您没有这样做,那么您删除文件,程序安装认为它已损坏,并尝试恢复您再次执行程序时删除的文件。
在InstallShield(我熟悉的安装程序产品)中,有产品GUID 和升级GUID 。升级GUID 在不同版本的产品系列中始终保持相同。产品GUID 随每个新的MAJOR或MINOR版本而变化。通常,如果您遵循此模式,然后在新版本中指定文件删除,则安装程序应将文件删除解释为升级,并且在后续执行新安装的版本时不应出现任何错误。