Vb.net 32位或64位Excel的.net对象?
我有一个VB.net项目,它构建并注册了一个COM库,我可以在我的开发机器上打开并在Excel中使用它。那台机器正好有32位的Excel。在我的另一台机器上,Excel以64位安装,不会打开库429 其他线程建议,只要我在“Any”下编译代码,代码本身就可能很好 对吗?为“any”编译的代码通常能够在32位和64位上运行吗 同样的线程表明,唯一真正的问题是tlb/注册,并指出一些文章建议手动调用regasm以避免这种情况 这是正确的吗Vb.net 32位或64位Excel的.net对象?,vb.net,excel-2010,Vb.net,Excel 2010,我有一个VB.net项目,它构建并注册了一个COM库,我可以在我的开发机器上打开并在Excel中使用它。那台机器正好有32位的Excel。在我的另一台机器上,Excel以64位安装,不会打开库429 其他线程建议,只要我在“Any”下编译代码,代码本身就可能很好 对吗?为“any”编译的代码通常能够在32位和64位上运行吗 同样的线程表明,唯一真正的问题是tlb/注册,并指出一些文章建议手动调用regasm以避免这种情况 这是正确的吗 如果是,我应该有两个tlb文件吗?还是两个ComLib?还是
如果是,我应该有两个tlb文件吗?还是两个ComLib?还是只有一个?好的,它正在工作。我仍然不明白为什么这个解决方案有效,但它是:
这个解决方案远非理想。首先,微软一直在移动regasm的位置,所以没有简单的方法来编写脚本。另一方面,我不知道为什么需要调用/codebase,但它似乎与文件的命名有关。最后,这意味着所有这些工作都需要在您想要运行它的每台机器上至少进行一点手动操作,否则您将需要经历制作安装程序的麻烦 我认为不能同时使用32位和64位库。如果应用程序以64位运行,则不能使用32位COM库(反之亦然)。还有,不,那不一样。我想将64位加载到64位,将32位加载到32位。他们试图将32位加载到64位。如果我错了,请纠正我:如果安装了32位版本的Excel,您希望以32位运行应用程序;否则,如果安装了64位Excel,请以64位运行应用程序?正确。但它是一个DLL,而不是一个应用程序。如果你用“任何CPU”设置编译DLL,它应该能够在32位和64位下运行。将使用此DLL的“主”应用程序将确定它是在32位还是64位下运行。我会说,试一试,看看它是否有效。