我使用Visual C ++开发一个非托管DLL,这是我的应用程序的一部分。我一直有链接VC运行时库的各种问题。不知何故,我使用VS 2005进行了管理,但自从我搬到VS 2008以后,我的DLL的发布版本不再适用于任何PC,而不是使用我的开发工具(即VS 2008)。
我将运行时库链接为多线程DLL(/ MD)。我尝试了/ MT选项,但这会导致很多错误消息。我允许隔离清单文件,当然安装了VC ++ 2008运行时(虽然我不认为它应该是必需的)。我还尝试了依赖walker来检查缺少的内容。在我的开发PC上(安装了VS 2008 SP1),报告缺少三个文件:
MSVCR90.DLL,GPSVC.DLL,IESHIMS.DLL
但这并不能阻止应用程序(和我的DLL)运行。
在我试图安装我的应用程序的所有其他PC上,除了这三个之外,第四个文件被dep报告为缺失。 walker:MSVCP90.DLL。
更重要的是,我自己的DLL也不能正常工作。 我知道这不是什么新鲜事,我试图阅读有关SxS问题的所有内容,但我仍然不知道该怎么做。希望我对“现象”的描述足以让更有经验的人给我一些帮助。
提前致谢。