无法删除 VS 2015 安装项目中的文件

Can't delete files in VS 2015 Setup project

我有一个普通的 VS 2015 安装项目(安装了扩展,所以它看起来像 VS 2010 及更早版本的安装项目)。

在 'File System on Target Machine' 部分,我添加了一个文件夹 "MyAppFolder",然后添加了该解决方案的其中一个项目的主要输出。然后 VS 也添加了一堆 dll。

但是,当我尝试删除文件夹时,它显示:

Cannot delete folder. Folder is not empty or it might contain excluded files, which are not shown.

是的,它不是空的。如果我右键单击单个 dll 文件,"Delete" 选项将被禁用。

我不想在目标机器上安装这个文件夹。如何在我的安装项目中删除这个文件夹?

从安装中删除不再需要的文件(例如,因为它们在自定义操作中使用过)的支持方法是将组件 ID 设置为空。

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

查看有关组件 ID 的备注。

在 Visual Studio 设置中不支持此功能,因此通常通过使用 Orca 等工具编辑 MSI 文件来手动完成。

总的来说,我认为您总是需要先删除单个文件,然后再删除文件夹。

我遇到了同样的问题,这对我有用:

  1. 先删除文件夹内的文件。
  2. 有些文件无法删除,请将其从项目中排除"Detected Dependencies",然后重试。
  3. 删除父文件夹。

我在处理大量数据文件及其相关文件夹时遇到了这个问题。有64个文件夹和1000多个文件。这是我找到的解决方案:-

正在删除数据文件

  1. 在左侧窗格的解决方案资源管理器视图中完全展开安装项目,直到列出安装中复制的所有文件
  2. Select 所有你想删除的文件(在我的例子中是全部)
  3. Select 从主菜单中编辑->删除以从安装中删除所有文件
  4. 转到“文件系统”视图并逐个删除其包含的文件夹。

使用这种方法,我在不到 1 分钟的时间内成功删除了超过 1000 个文件及其文件夹

我今天遇到了这个问题,并找到了可能的解释。如果您在安装程序的任何部分都有一个项目的输出,使得 Visual Studio 自动添加的 .dll 被所述项目引用,Visual Studio 将不允许您删除这些引用。如果您要从安装程序中删除此项目输出引用,则 .dll 也会消失。然后,您可以 re-add 您实际需要的输出参考。所以,回顾一下:

  • 删除所有可能引用 .dll 的项目输出(是的,即使是在其他位置的)
  • 自动添加的 .dll 应该会消失
  • 将项目输出添加回您想要的位置