我正在使用 VS2010 的 Visual Studio 安装程序 将我的应用程序部署到 MSI。
我在开发过程中引用了很多 DLL;有些是第三方,有些是系统 DLL。现在在部署期间,我不知道要包含或排除什么。在我添加输出 .EXE 后,Visual Studio 自动包含Detected Dependencies,但它们通常不足以运行应用程序。我经常不得不手动将开发的 DLL 包含到已安装的应用程序文件夹中。否则,eventvwr 只会提供一个通用的 CLR20r3 错误,它只会告诉我缺少 DLL,但不会指明是哪一个。
在我的部署项目中包含所有引用已成为一种习惯(IMO,这是一个非常坏的习惯),因为它们在我的开发项目中被引用,但我猜应用程序的卸载可能会删除导致其他应用程序出现问题的系统 DLL .
除了Detected Dependencies之外,我怎么知道要在部署项目中手动包含哪些 DLL?
最佳答案
您的所有第三方 dll 都需要与您的应用程序一起分发。
您需要查看这些库的文档以获得准确的答案。
根据经验,请查看项目的“引用”部分。
记下那里使用的库,然后检查文档是否需要 VS 未检测到的其他库。有时,这些库会提供一个“可再分发包”,您可以将其包含在您的安装项目中。
我更喜欢手动完成这项工作,并且总是在空虚拟机中进行测试。当您的客户安装应用程序时设置失败是非常尴尬的。
要卸载,如果您将所有内容都安装在您的应用程序文件夹中,您真的没有什么可担心的。
关于c# - Visual Studio 安装程序中的依赖项和 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15743106/