【发布时间】: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