Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 32位二进制文件在sharepoint 64位上,试图加载格式不正确的程序_C#_Sharepoint_64 Bit - Fatal编程技术网

C# 32位二进制文件在sharepoint 64位上,试图加载格式不正确的程序

C# 32位二进制文件在sharepoint 64位上,试图加载格式不正确的程序,c#,sharepoint,64-bit,C#,Sharepoint,64 Bit,我有很多sharepoint web部件等,所有这些部件都是为任何cpu编译的,它们在32位sharepoint上运行良好,但在64位中移动到server 2008会导致以下错误: 试图加载格式不正确的程序。(HRESULT的异常:0x8007000B) 据我所知,它们应该都能正常工作?您不能混合使用32位和64位程序集。您唯一的选择是将二进制文件重建到x64 您可以在64位操作系统上运行32位二进制文件/库,但同样不能将它们混合在一起 64位进程无法加载32位DLL,反之亦然 IIS是64位硬

我有很多sharepoint web部件等,所有这些部件都是为任何cpu编译的,它们在32位sharepoint上运行良好,但在64位中移动到server 2008会导致以下错误:

试图加载格式不正确的程序。(HRESULT的异常:0x8007000B)


据我所知,它们应该都能正常工作?

您不能混合使用32位和64位程序集。您唯一的选择是将二进制文件重建到x64

您可以在64位操作系统上运行32位二进制文件/库,但同样不能将它们混合在一起

  • 64位进程无法加载32位DLL,反之亦然
  • IIS是64位硬件上的64位进程。可以配置单个 要运行32位的应用程序池,但
  • Sharepoint最有可能运行64位
  • 因此,程序集及其所有从属程序集和DLL必须运行64位


    请注意,标记为“任何CPU”的.NET程序集将在64位硬件上以64位运行。但是,任何本机dll都需要本机编译为64位。

    好的,谢谢,我必须进一步研究代码,并找出是否使用了其他dll。我认为唯一的依赖项是microsoft.sharepoint dll,如果安装了64位sharepoint,这应该不是问题。@Nathan,您是否依赖任何进程内COM对象?这些必须是64位的(上面第1点)。不,没有COM的东西,也没有64位DLL,除了我们制作的,它们都是为任何CPU编译的,所以也应该可以工作。大多数部件工作正常,但只有少数web部件有这个错误,如果你调试到它们中,它们只是在渲染函数上循环。这里的解决方案是什么?我有一个类库,它必须是buildx64。我还通过一个运行在64位硬件上的web应用程序公开了这个类库。由于出现以下错误,我无法生成或部署..[BadImageFormatException:无法加载文件或程序集'ClassLibrary64,版本=1.0.0.0,区域性=neutral,PublicKeyToken=null'或其依赖项之一。试图加载格式不正确的程序。]