Visual Studio安装项目:如何在安装我的应用程序之前删除目标文件夹中的所有旧文件和文件夹?

时间:2017-08-31 07:25:08

标签: visual-studio windows-installer visual-studio-setup-proje

我正在通过Visual Studio安装项目创建Windows Installer(.msi)文件。 运行.msi文件时,如果目标文件夹已经存在并且有一些文件和子文件夹,那么在安装我的应用程序之前如何删除它们呢? 我已经搜索过,但找不到解决方案。

1 个答案:

答案 0 :(得分:0)

对于升级,这应该有所帮助:

https://www.red-gate.com/simple-talk/dotnet/visual-studio/updates-to-setup-projects/?_ga=2.123102924.696294303.1504290215-1234024276.1504290215

基本上更新安装项目的版本,接受更改,在构建升级MSI时将RemovePreviousVersions设置为true。此外(不在文章中)您必须增加正在升级的二进制文件的文件版本。这将在安装新版本时卸载旧产品。

帖子没有说明临时文件的位置,但如果它们是数据文件或临时文件,则应用程序不应该在(比如)Program Files文件夹中创建它们,因为它们是不是推荐的地方(临时文件有明确定义的文件夹,如临时文件夹),它需要提升才能在程序文件中写入/更新文件,因此应用程序仅限于管理员用户。

卸载不会删除应用程序创建的文件(您不希望卸载Word以删除所有doc文件),因此应用程序可能更容易在其中创建它们首先,或在首次启动时将其删除。卸载的常规代码解决方案是旧产品中的卸载自定义操作,用于删除它们,但如果旧版本已经发货,则为时已晚。

此外,在全新安装中(即使它是升级版),如果您显示浏览对话框以选择应用程序文件夹,则用户可以选择安装到其他位置,这意味着文件已保留例如,在某些孤立的Program Files文件夹中。