0

我的构建应用程序有问题。

我有一个从这里获取的项目对其进行了修改并在我的程序中实现。
很快,这个 TableProc 项目会生成一个报告给 OpenOffice Calc 并使用来自 OpenOffice 的一些库 - cli_basetypes (GAC/MSIL)、cli_oootypes (GAC/MSIL)、cli_uno (GAC/MSIL)、cli_ure (GAC/MSIL)、cli_uretypes (GAC/ MSIL)cli_cppuhelper (GAC32)。

看起来像:
解决方案
.....Project1(引用TableProc)
.....Project2(引用TableProc)
.....TableProc(实现)(对bin目录cli_basetypes.dll等库的引用)

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

但是当我构建我的应用程序时:
1. cli_basetypes、cli_oootypes 等没有 DLL
2. 有 project1.dll、project2.dll 和 TableProc.dll 和 Program.exe

问题:

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

错误一:

无法加载文件或程序集 'cli_cppuhelper, Version=1.0.14.0, Culture=neutral, PublicKeyToken=ce2cb7e279207b9e' 或其依赖项之一。Ann 试图加载格式不正确的程序。)

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

然后我发现,当您安装 Open Office 时,这些库已安装在 GAC 中。我查看了它们,注意到它们都安装在 GAC/MSIL 中,但 cli_cppuhelper 安装在 GAC/32 中。

我试图手动将 cli_cppuhelper 程序集从 GAC/32 复制到 GAC/MSIL,并收到此错误:

错误2:

不是有效的Win32应用程序。(来自 HRESULT 的异常:0x800700C1))

据我了解,我的应用程序在查找 DLL 时仅在 GAC/MSIL 中查找

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

4

2 回答 2

0

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

于 2013-08-02T06:39:04.960 回答
0

对于那些在未来发现这一点的人。

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

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

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

注意:AnyCPU 不工作。

于 2019-01-09T00:27:09.970 回答