C#项目,GAC,DLL

C#项目,GAC,DLL,c#,dll,gac,cil,openoffice-calc,C#,Dll,Gac,Cil,Openoffice Calc,我构建的应用程序有问题 我有一个修改后的项目,并在我的程序中实施。 很快,这个TableProc项目将生成一个报告给OpenOffice Calc,并使用OpenOffice中的一些库——cli基本类型(GAC/MSIL)、cli oootypes(GAC/MSIL)、cli uno(GAC/MSIL)、cli(GAC/MSIL)、cli类型(GAC/MSIL)和cli cppuhelper(GAC32) 看起来像: 解决方案 …项目1(参考TableProc) …项目2(参考TableProc

我构建的应用程序有问题

我有一个修改后的项目,并在我的程序中实施。
很快,这个TableProc项目将生成一个报告给OpenOffice Calc,并使用OpenOffice中的一些库——cli基本类型(GAC/MSIL)、cli oootypes(GAC/MSIL)、cli uno(GAC/MSIL)、cli(GAC/MSIL)、cli类型(GAC/MSIL)cli cppuhelper(GAC32)

看起来像:
解决方案
…项目1(参考TableProc)
…项目2(参考TableProc)
..…TableProc(已实现)(关于bin目录cli_basetypes.dll中的库和其他库的参考)

因此,当我处于调试模式VS 2010时,这些DLL位于目录*/bin/-一切正常-报告完成

但当我构建应用程序时:
1.没有用于cli\u基类型、cli\u oot类型和其他类型的DLL
2.有project1.dll、project2.dll和TableProc.dll以及 Program.exe

问题:

在构建的应用程序中,它告诉您:

错误1:

无法加载文件或程序集cli\u cppuhelper,版本=1.0.14.0, 文化=中性,PublicKeyToken=ce2cb7e279207b9e'或其 依赖关系。Ann试图加载带有 格式不正确。)

好的,我试图手动将这些DLL放在我的Program.exe旁边-同样的错误

然后我发现,这些库是在安装OpenOffice时安装在GAC中的。我查看了它们,发现它们都安装在GAC/MSIL中,但cli_cppuhelper安装在GAC/32中

我试图手动将cli_cppuhelper程序集从GAC/32复制到GAC/MSIL,但出现以下错误:

错误2:

不是有效的Win32应用程序。(HRESULT的例外情况: 0x800700C1)

由此我了解到,我的应用程序在查找DLL时只在GAC/MSIL中查找


请帮忙,我不知道该怎么办…

将您的平台从AnyCPU更改为x86。

对于那些将来会发现这一点的人

问题是Visual Studio中的目标平台不正确。.dll需要使用正确的位版本编译

您需要将Visual Studio中的目标平台更改为:

  • 64位->x64
  • 32位->x86

注意:AnyCPU不工作。

将平台从AnyCPU更改为x86