Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio Visual Studio安装项目-如何避免重复条目?_Visual Studio_Visual Studio 2017_Visual Studio Setup Proje - Fatal编程技术网

Visual studio Visual Studio安装项目-如何避免重复条目?

Visual studio Visual Studio安装项目-如何避免重复条目?,visual-studio,visual-studio-2017,visual-studio-setup-proje,Visual Studio,Visual Studio 2017,Visual Studio Setup Proje,这是我第一次使用VisualStudio安装程序创建安装程序,有一件事我不明白 我通过简单的拖放添加了所需的文件,但最终结果是安装程序创建了大量重复条目,如下所示: 换句话说,对于我的几乎每一个.dll文件,VisualStudio都会添加一个同名的重复.dll文件,该文件甚至无法删除 虽然最终生成的安装程序仍然可以正常工作(因为我假设其中一个副本正在覆盖另一个副本),但它会产生一个恼人的副作用,即生成大量警告,并使最终的.MSI文件几乎是需要的两倍大 如何避免这种情况?从您在评论中的简要描述

这是我第一次使用VisualStudio安装程序创建安装程序,有一件事我不明白

我通过简单的拖放添加了所需的文件,但最终结果是安装程序创建了大量重复条目,如下所示:

换句话说,对于我的几乎每一个.dll文件,VisualStudio都会添加一个同名的重复.dll文件,该文件甚至无法删除

虽然最终生成的安装程序仍然可以正常工作(因为我假设其中一个副本正在覆盖另一个副本),但它会产生一个恼人的副作用,即生成大量警告,并使最终的.MSI文件几乎是需要的两倍大


如何避免这种情况?

从您在评论中的简要描述来看,不清楚重复的DLL是如何/为什么出现的。但是如果你想调整添加的内容,你有几个选择

  • 如果要从应用程序文件夹中删除DLL,可以尝试从左侧窗格中选择应用程序文件夹,然后右键单击DLL以查看是否显示删除选项。如果有,您可以通过这种方式删除它

  • 如果DLL具有依赖项,则需要以另一种方式删除它:转到解决方案资源管理器中的“安装项目”条目,您可能会看到它下面列出的DLL。另外,展开检测到的依赖项列表以查看可能更多的DLL。通过右键单击特定DLL并选择“排除”,可以选择要排除的DLL。成功排除后,应用程序文件夹窗格中的DLL列表将缩短


  • 这个建议会让你克服目前的障碍

    请提供有关该步骤的更多详细信息:“我已经通过简单的拖放添加了我想要的文件”。@Jazimov:我从windows资源管理器中拖动了我想要包含在安装程序中的所有文件,并将它们拖放到上面屏幕截图中显示的“目标计算机上的文件系统->应用程序文件夹”条目中。这将正确添加所有文件和子文件夹结构,唯一的问题是生成了重复的条目。您使用了什么类型的windows installer项目?听起来像是在抓取主可执行文件的依赖项,而添加这些依赖项也是导致重复的原因。@MarkHall:可能就是这样。。。如何设置它以禁用自动依赖项包含?我只想把我的文件添加到一个文件夹中,就这样。。。我不需要所有额外的东西。可能吗?谢谢你的回复。我已经找到了“排除”选项,但由于项目中有很多DLL,我想知道是否有一种方法可以避免在第一时间创建重复,而不是手动排除您在OP中所说的每一个Visual Studio添加了“甚至无法删除”的重复DLL。此外,您显然不想提供任何关于如何添加文件的详细信息。我了解拖放,除非我更了解如何选择源文件,否则我无法完全理解您是如何获得副本的。我的答案——这是正确的——告诉您如何删除重复项。也许您已经发现了“排除”选项(出于某种原因,之前拒绝提及)——但我也向您提供了一个删除选项。我的回答至少有一部分帮助。我没有进入更多的细节,因为没有:)我只是从一个文件夹拖放文件,就这样。当你这样做的时候,他们会被添加上重复的内容。。。没什么好说的了!你的回答确实有帮助,事实上目前我正在使用排除选项。我只是在等着看是否有人有更好的解决方案(即:一开始避免生成重复项的方法)。如果有人不能很快提供更好的答案,我会接受你的答案。我的意思是:为了防止问题首先发生,不要拖放重复的DLL或具有重复引用的DLL。。。我正在寻找的“详细信息”是为了让您发现,您是在将程序集拖放到列表中时复制条目的人。“dumb”VS setup项目只是强制您的请求复制DLL条目,因此会出现警告。现在,如果微软想让这些安装项目“更智能”,他们可以提供逻辑来确定是否存在重复和自动清除它们——唉,这项功能还不存在。这就是我想确认的,它只是与“愚蠢”相比,基本上不是自动清除重复。。。好的,我会手动排除它们。谢谢你的回答。