.NET安装包安装程序

4
我有一个.NET 3.5设置包项目,可以成功安装我的应用程序。
安装包部署了大约70个自定义文件,供应用程序使用。
有时我需要删除其中一些文件,但重新启动可执行文件后,它会自动再次运行部分设置MSI,并重新安装这些文件。
目前唯一的方法是在启动可执行文件后删除文件以达到所需的结果。
我查看了设置包中文件的属性,例如Vital和PackageAs,但似乎无法识别所需的设置。
请问有人知道如何实现这一点吗?
非常感谢。
3个回答

2

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

"如何关闭用户需要修改或删除的文件的修复?

Visual Studio创建广告快捷方式,以便在启动程序时验证所有文件是否存在。要更改此行为并导致它不修复文件,请选择安装项目中的文件,并将其条件属性更改为NOT REINSTALL,以使文件在修复时不会重新安装,并将其传递属性更改为TRUE,以使条件重新评估。这将导致安装程序在第一次删除文件后闪烁屏幕,因为它验证文件不应重新安装,但之后您将不会看到安装程序。"


1
这个问题也困扰了我,我不知道具体需要更改哪些设置来防止这种情况发生,但是我可以告诉你一个解决方法。我发现只有在从安装程序中安装的快捷方式运行应用程序时才会出现这种情况。因此,如果你创建一个新的应用程序快捷方式并通过该快捷方式运行它,那么你删除的文件就不会自动恢复。

0

Windows Installer支持三种产品升级方式:主要升级、次要升级和小型更新。关于在什么情况下使用哪种升级的简述可以在此处找到:http://helpnet.flexerasoftware.com/robo/projects/installshield12helplib/MajorMinorSmall.htm

你需要做的是设置安装程序,使新版本软件将文件删除视为对先前版本的升级。如果你未能这样做,然后你删除了文件,程序安装会认为它已经损坏,并在再次执行程序时尝试恢复你删除的文件。

在我熟悉的安装程序产品InstallShield中,有一个“产品GUID”和一个“升级GUID”。升级GUID在您的不同版本的产品系列中始终保持不变。产品GUID在每个新的主要或次要版本发布时都会更改。通常情况下,如果您遵循这种模式,并在新版本中指定文件删除,则安装程序应将文件删除解释为升级,并且在随后执行新安装版本时不应出现任何错误。

谢谢Robert,我正在学习Windows Installer的概念。问题更多地涉及启动相同版本的可执行文件-这会触发重新安装,而不是由升级引起的问题。升级GUID和产品GUID应该与相同的MSI相同。谢谢。 - Duncan
从一个已安装的程序中安全删除文件的唯一方法是执行升级。 - Robert Harvey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接