【发布时间】:2011-11-17 13:56:26
【问题描述】:
我和我的业务合作伙伴正在共同开发一个部署在 Azure 上的网络应用程序。我的盒子基于 64 位 Windows 7,但我的伙伴使用的是 32 位 Windows 7。
在 VS2010 IDE 中,当我从我的 System32 目录(我的盒子上是 64 位)添加对“ieframe.dll”的引用时,IDE 实际上带来了 SysWoW64(32 位) 版本的 DLL。
两个开发框都可以完美地与 32 位 WOW 版本的“ieframe.dll”配合使用,但是当我们部署到 Azure 时,我们会在制作时遇到 EntryPointNotFoundException对“ieframe.dll”的 Interop/DllImport 调用。因此,Azure 似乎想要拥有 64 位版本。
我们如何将 64 位版本部署到 Azure,但在我们的开发盒上继续使用 32 位版本?
编辑:显然,我们可以通过在某处复制 64 位“ieframe.dll”然后手动将其放置在“bin”目录中来手动执行此操作,但是在 Azure 中是否有更好的最佳实践方法来执行此操作?
编辑 #2:对于这种情况,我们最终将 Azure 的节点从 osFamily="1" 更改为 osFamily="2"。这样做会安装包含 IE8(而不是 Windows Server 2008 SP1 中的 IE7)的 Windows Server 2008 R2。无需混淆 32 位和 64 位版本或手动将 DLL 复制到服务器。
【问题讨论】:
标签: azure 64-bit dllimport 32-bit