【问题标题】:Dependencies and DLL in Visual Studio InstallerVisual Studio 安装程序中的依赖项和 DLL
【发布时间】:2013-04-01 12:01:03
【问题描述】:

我正在使用 VS2010 的 Visual Studio 安装程序 将我的应用程序部署到 MSI

我在开发过程中引用了许多 DLL;有些是第 3 方,有些是系统 DLL。现在在部署期间,我不知道要包括或排除什么。在我添加输出 .EXE 后,Visual Studio 自动包含 Detected Dependencies,但它们通常不足以运行应用程序。我经常不得不手动将开发的 DLL 包含到已安装的应用程序文件夹中。否则,eventvwr 只会提供一个通用的 CLR20r3 错误,它只会告诉我缺少 DLL,但不会指出是哪个。

在我的部署项目中包含所有引用已成为一种习惯(一个非常坏的习惯,IMO),因为它们在我的开发项目中被引用,但我猜应用程序的卸载可能会删除导致其他应用程序出现问题的系统 DLL .

那么除了检测到的依赖项之外,我如何知道要在部署项目中手动包含哪些 DLL?

【问题讨论】:

  • 你在说什么development dll?我想您不是在谈论 NET Framework dll,因为它们应该由您的目标计算机上的框架安装程序安装。
  • 我有多个 DLL,例如 DevExpress、一些 3rd Graphics Libraries、Licensing Dlls 等。所以我试图让我的问题更通用..
  • 您应该包含所有第三方 dll,否则您的应用程序将无法运行。即,如果您使用过 Sql Server CE,请从程序文件>>microsoft sql server ce 文件夹中包含 dll。我认为这没有任何通用规则。进行设置,在干净的机器上运行它(仅使用 dot net 框架),然后逐个拍摄丢失的 dll,完成后,将列表随身携带 :)
  • 工作量很大..所以我应该跟踪开发过程中要包含的 DLL ..
  • 这是一个初始步骤,但这应该不是问题,因为在您的开发工作中添加新库不是(也不应该是)您的开发历史中的小事。

标签: c# wpf visual-studio-2010 deployment


【解决方案1】:

您的所有第三方 dll 都需要与您的应用程序一起分发。
您需要查看这些库的文档以获得准确的答案。

根据经验,请查看项目的“参考”部分。
记下那里使用的库,然后检查文档是否需要 VS 未检测到的其他库。有时这些库会提供一个“可再发行包”,您可以将其包含在您的安装项目中。

我更喜欢手动完成这项工作,并且总是在空的虚拟机中进行测试。当您的客户安装应用程序时设置失败是非常尴尬的。

要卸载,如果您将所有内容都安装在应用程序文件夹中,您真的不用担心。

【讨论】:

猜你喜欢
  • 2016-11-23
  • 1970-01-01
  • 2015-05-10
  • 2010-09-30
  • 1970-01-01
  • 1970-01-01
  • 2018-06-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多