我的业务伙伴和我正在共同开发部署在Azure上的Web应用程序。我的盒子是基于64位Windows 7,但我的合作伙伴正在使用32位Windows 7。如何在Azure上部署64位版本的DLL,但在开发盒上使用32位版本
从VS2010 IDE内时从我的System32目录(在我的箱64位)加到一个参考“ieframe.dll”,实际上是带过来的所述SYSWOW64(32位)版本的IDE DLL。
两个开发盒用的“ieframe.dll” 32位WOW版本完美地工作,但是当我们部署到Azure中,我们正在做的互操作/调用的DllImport进入“ieframe当得到一个EntryPointNotFoundException。 DLL”。所以看起来Azure希望拥有64位版本。
我们如何才能将64位版本部署到Azure,但在我们的开发箱中仍然使用32位版本?
编辑:显然,我们可以通过在某处复制64位'ieframe.dll'手动执行此操作,然后手动将它放在'bin'目录中,但是有没有更好的最佳实践方式可以在Azure中执行此操作?
编辑#2:对于这种情况,我们最终将Azure的节点从osFamily =“1”更改为osFamily =“2”。这样做会安装Windows Server 2008 R2,其中包括IE8(而不是Windows Server 2008 SP1中的IE7)。不需要混淆32位和64位版本,或手动将DLL复制到服务器。
感谢您的详细回复。我的共同创始人和我考虑了您提供的所有反馈。最后,他选择了一个子弹,并决定升级到64位操作系统的64位机器,这样他和我都将使用相同的64位架构。之前,他从32位盒子中将所有新位部署到Azure。这工作得很好,直到我们遇到了我上面提到的与ieframe.dll依赖项相关的问题。我们讨厌不得不支持多种配置,所以现在是时候让他“上手”到一个新盒子了! –
顺便说一下:使用Azure启动任务是我们面临困境的最经常建议的解决方法,但正如您所指出的,在所有“修复”中,这是最丑陋的。我们再次感谢您的反馈。如果出于某种原因,我们有另一位开发人员与32位开发机器相连,那么知道如何做到这一点很好。 –
有关我们最终使用的解决方案,请参阅上面的编辑#2。 –