我计划在 win 2k8 core 上移植一个应用程序(更确切地说是让它运行)。但似乎核心上缺少很多 dll。我知道这是一个精简版的 Windows 服务器,但那么应该如何开发应用程序,或者更确切地说,如何让现有的应用程序在服务器核心上无缝运行。
在运行我的应用程序时(在包括 Win 7 在内的其他平台上运行良好),我发现缺少以下 dll
oledlg.dll msjetoledb40.dll dhcpsapi.dll dsauth.dll
仅举几个例子。我确信我可能还会遇到更多。
目前,我能想到的唯一快速修复方法是将 dll 与我的应用程序一起发送。我想不是每个人都会同意。这不是最好的解决方案,并且会带来 redistro 许可麻烦。
有什么想法吗?
谢谢。Samrat
Patil。
答案1
Windows Server 2008 默认“仅核心”安装的主要特点是几乎不包含任何内容 - 它是一个裸系统,您可以在其中安装所需的少数服务和组件,而没有其他内容(如果您更熟悉 Linux,则类似于 Debian 基础安装和类似安装)。这些 DLL 可能不是“缺失”的 - 它们只是您尚未在机器上安装的组件的一部分。
您应该找出哪些组件和服务提供了您的应用所需的库和其他设施,并将它们列为您的应用程序的预安装依赖项。
你应该不是按照您的建议自行发送系统或第三方 DLL(除非库附带相关说明、可重新分发的安装集或可合并的 MSI),因为这样可能会在目标系统上出现严重的库版本问题。此外,您不需要直接引用的那些 DLL - 这些库可能依赖于其他不存在的 DLL,并且可能需要其他东西(例如大量的注册表设置)才能正常工作 - 自己把所有这些东西放在一起不是一件愉快的工作。
编辑:您可能会在 StackOverflow 上找到更多帮助来查找您的项目所依赖的组件(默认情况下核心安装缺少这些组件),因为它可能更多的是开发人员的问题,而不是管理员的问题。
答案2
还要注意,在为 Server Core 开发时,需要遵循一些指导原则才能使其正常工作。您不能以标准 .Net 框架为基础开展工作。有关此主题的更多信息,请参阅 microsoft.com(MSDN 上有开发人员指南)。