我使用Any CPU
选项编译了一个.NET应用程序。此.NET应用程序使用封装C ++调用的非托管dll(托管包装器)。这个.NET包装器驻留在GAC中。
当我运行.NET应用程序时,它在XP 32位上运行良好。但是当我在XP 64位上运行它时,它会失败并给出以下异常:
无法加载文件或程序集“Dll name,version,Culture = neutral,PublicKeyToken”或其依赖项之一。
如何解决此问题?
答案 0 :(得分:3)
您需要使用x86 CPU选项。如果您知道某个非托管依赖项是32位,则需要使用x86选项为CPU构建解决方案。这确保即使在64位操作系统上,您的应用程序也将以32位进程运行。
这是必需的,因为它无法将32位编译代码加载到64位进程中。
答案 1 :(得分:0)
您需要确保您的非托管dll在搜索路径中也具有64位功能。
答案 2 :(得分:-1)