如何防止安装和部署项目替换它创建的文件?

How can I keep a Setup and Deployment project from replacing the files it creates?

我有一个 Windows 安装和部署项目,其中创建了几个非必要的文件。当用户删除这些文件时,程序会在下次 运行 时重新创建它们。

如何防止这种行为?

在 Visual Studio 设置中不支持此操作,但记录的方法是为将要删除的文件设置一个空组件 ID:

https://msdn.microsoft.com/en-us/library/aa368007(v=vs.85).aspx

并查看 ComponentId 说明。因此,您需要使用 Orca 或类似工具编辑 MSI 文件,并将文件的 ID 设置为空。这可以通过 post-build 脚本与一些 MSI SQL 和 VBScript 或程序自动完成。

尝试通过禁用修复来消除此问题通常会失败,因为并非所有修复都可以阻止(例如右键单击 MSI 并修复,或者可能是程序和功能)并且升级(RemovePreviousVersions)很可能会导致正在重新安装它们,以便 Windows 可以查看它们是否需要更新(如果它们不存在则无法更新)。