在哪里可以找到x64版本的Office互操作程序集

本文关键字:Office 互操作 程序集 版本 x64 在哪里 | 更新日期: 2023-09-27 18:11:20

我正试图在我的VisualStudio 2010中运行此项目。它在我的64位机器上构建和运行得很好。

注意:我必须将项目的构建平台更改为x86。

我的问题是当我尝试运行编译程序集(将调试文件夹移动到另一台64位机器后)我无法运行我的项目。当我打开它时,我的exe崩溃了。

根据我的理解,问题是因为项目中使用的三个DLL是32位的,机器是64位的。

注意:下面是三个DLL

Interop.Office.dll
Interop.VBIDE.dll
Interop.Word.dll

我搜索了很多,但没有找到任何解决方案。我想到的一个解决方案是设法获得64位版本的以上DLL,我也谷歌了很多,但无法得到任何东西。你能帮我找到解决这个问题的方法吗?或者有没有办法找到以上DLL的64BIT版本?

在哪里可以找到x64版本的Office互操作程序集

如果您必须使用32位的dll,那么您可能无法运行64位编译的应用程序。

所以在发布到另一台pc之前,你需要在32位模式下编译你的所有项目(就像你为调试所做的那样)。

您可以确保您的dll编译正确(仅32位),使用Microsoft CorFlags.exe实用程序。

如果您发现dll不是32位,您也可以尝试使用相同的实用程序(/32bits falg)更改它。

更多信息:

Office默认版本为32位版本。

要获得64位版本的程序集,您需要专门安装64位office(参见此处)。64位版本的Office应该能够使用您的32位程序(使用WoW)但是最好创建(并测试)两个版本:一个是32位的,一个是64位的。

不幸的是,这意味着32位的Office不能和64位的Office一起安装。

你确定问题出在办公室的互操作上吗?

您收到的错误信息是什么?您已经声明您正在使用x86平台构建模式进行编译。因此,即使在其他64位机器上,您的dll也将作为32位进程运行,因此将调用32位office dll。

如果你已经编译为AnyCPU,那么我可以看到你得到的错误是如何与office dll位相关的,因为你的应用程序将在64位(在64位机器上)启动,然后尝试调用32位office dll。

但是我不明白你是如何发现32位dll是任何32位或64位机器上的问题的,因为你正在编译到32位(x86)。所以你的汇编清单告诉JIT编译器,"嘿,我是一个32位进程"。

请记住,代码的位是在运行之前确定的。编译后的代码只是等待编译的IL,无论您使用的是x86、x64还是AnyCPU的构建平台,它都是相同的IL。

运行时查看清单并将其编译到选择的平台…在这种情况下是x86…从你所说的来看。

所以问题不在于:

项目中使用的三个DLL是32位的,Machine是64位的。

32位dll在64位机器上广泛使用。Visual Studio本身是一个32位应用程序,在64位机器上运行得很好。问题(恕我直言)是

    不是办公室的玩偶,而是别的东西…我想Office已经安装在另一台机器上了。
  1. 您在部署之前不小心更改了上次构建的目标平台,而不是x86。