【问题标题】:Setup Project is adding built in .NET Framework .System assemblies to output安装项目正在将内置的 .NET Framework .System 程序集添加到输出
【发布时间】:2016-05-25 20:13:32
【问题描述】:

我正在使用 VS Community 2015,Setup Project extension。我从来没有见过这个问题与 2010 一起工作。问题是当我将一个项目添加到输出时,检测到的依赖项列出了我在项目中使用的所有 dll,包括内置的:

在我运行安装程序后,它会继续安装一百个 dll 文件,包括应该是 .NET Framework 一部分的文件,例如:

  • System.IO.dll
  • System.Linq.dll

我确定:

  • 我的所有项目都设置为 .NET 4.5.2
  • 在安装项目中,我将目标 .NET 框架设置为 .NET 4.5.2
  • 在安装项目中,我将先决条件设置为 .NET 4.5.2

我做错了什么?我怎样才能让设置只安装不属于 .NET Framework 的 dll(如 Caliburn 或 NLog)。谢谢。

编辑 1:根据“Claudius”问题,这里是我的机器上应该安装的 .NET 框架的列表。请注意,我正在尝试安装在我正在开发的同一台机器上。我的 /bin/Release 文件夹没有任何 .NET .System 目录,并且应用程序从那里运行良好。

编辑 2: 找到另一个有类似问题的人。遗憾未解决: Visual Studio Setup Project: Huge list of dependencies

【问题讨论】:

  • 您安装的机器有 .NET 4.5.2 吗?
  • @Claudius 我在我的问题中添加了已安装框架的屏幕截图。我正在部署在我现在开发的同一台机器上。为什么 bin/Release 文件夹不需要那些系统文件来运行应用程序? VS2015 是否将它们从操作系统不知道的某个 VS-only 位置链接起来?
  • @Eternal21 我也面临同样的情况。您是否找到解决方案或排除文件是要走的路?
  • @Oscar 不,我还没有找到解决方案。我也懒得删除这些文件,只需要在目标上部署多个文件即可。
  • @Eternal21 感谢您的回答。在我的情况下,这是不可接受的,它使 msi 文件太大:-(

标签: c# wpf visual-studio-2015 windows-installer setup-project


【解决方案1】:

这可能是与使用项目输出相关的 Visual Studio 问题。例如,如果您只有少量文件要安装到应用程序文件夹,可能还有一些文件要安装到 GAC,那么只需将这些单独的文件添加到目标计算机上的文件系统视图中的这些位置即可。

它也可能与 CopyLocal 设置有关,我会确保它不是为程序集设置的。

我还要确保您没有设置导致 Visual Studio 的“添加引用”包含来自 GAC 的程序集而不是相应的 SDK 程序集。

【讨论】:

    【解决方案2】:

    如果您选择一个dll(例如System.IO)并且您确定它已经在.NET框架中,您可以在属性窗口中将属性Exclude设置为True

    dll 不会被复制到安装文件中。

    【讨论】:

      猜你喜欢
      • 2012-07-19
      • 1970-01-01
      • 1970-01-01
      • 2011-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多