2010-03-24 140 views
4

我有一个.NET 3.5安装包项目,它成功安装我的应用程序。.NET安装包安装程序

安装程序包部署了多个(大约70个)自定义文件以供在应用程序内使用。

我不时要求删除其中一些文件,但是在重新启动可执行文件时,它会再次自动运行部分安装MSI,并重新安装这些文件。

我现在可以实现我想要的结果的唯一方法是在启动可执行文件后删除文件。

我已经查看了安装程序包中的文件(如Vital和PackageAs)的属性,但似乎无法确定实现此目的所需的设置。

有没有人知道需要什么来达到这个目标?

由于大部分

回答

1

这惹恼了我也一样,我不知道具体的设置你必须改变,以防止这一点,但我可以飞工作告诉你,我已经使用。我发现它只发生在我作为安装的一部分安装的快捷方式中运行应用程序时。因此,如果您为应用程序创建新的快捷方式并通过该快捷方式运行该快捷方式,那么您删除的文件将不会自动恢复。

+1

感谢Charles,这个解决方法可以工作, – Duncan 2010-03-24 06:48:09

0

Windows安装程序支持三种类型的产品升级:主要升级,次要升级和小型更新。使用哪种升级提要在什么情况下可以在这里找到:http://helpnet.flexerasoftware.com/robo/projects/installshield12helplib/MajorMinorSmall.htm

你想要做的是设置你以这样的方式安装人员,以供您的软件的新版本看到文件删除为升级到什么之前的版本。如果您没有做到这一点,然后删除文件,程序安装会认为它已损坏,并尝试恢复程序再次执行时删除的文件。

InstallShield中(与我所熟悉安装产品),还有一个产品GUID升级GUID。升级GUID 在您的不同版本的产品系列中始终保持相同的。产品GUID 随每个新的MAJOR或MINOR版本而变化。通常,如果遵循此模式,然后在新版本中指定文件删除,则安装程序应将文件删除解释为升级,并且在后续执行新安装的版本时不应出现任何错误。

+0

感谢Robert,这个问题更多地涉及到启动相同版本的可执行文件 - 这会触发重新安装,而不是升级引起的问题 升级GUID和产品GUID应该与它是相同的MSI相同谢谢 – Duncan 2010-03-24 06:52:56

+0

从安装的程序中安全地删除文件的唯一方法是执行升级。 – 2010-03-24 13:51:52

2

http://msdn.microsoft.com/en-us/library/kz0ke5xt%28v=VS.100%29.aspx

“ 如何关闭修为用户有望修改或删除文件?

Visual Studio创建公布的快捷方式,使程序启动时,它会验证一切为了改变这种行为并导致它不修复文件,请在安装项目中选择这些文件,并将Condition属性更改为NOT REINSTALL,以便该文件不会在修复过程中重新安装,并且其Transitive属性将被重新安装为TRUE该条件被重新评估,这将导致安装程序在文件删除后第一次在屏幕上闪烁因为它验证文件不应该被重新安装,但是在那之后您将不会看到安装程序。“ ”