【发布时间】:2013-03-23 12:42:04
【问题描述】:
我的构建应用程序有问题。
我有一个取自 here 的项目对其进行了修改并在我的程序中实现。
很快,这个 TableProc 项目会生成一个报告给 OpenOffice Calc 并使用来自 OpenOffice 的一些库 - cli_basetypes (GAC/MSIL)、cli_oootypes (GAC/MSIL)、cli_uno (GAC/MSIL)、cli_ure (GAC/MSIL)、cli_uretypes (GAC/ MSIL) AND 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和
程序.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 中查找
请帮忙,我不知道该怎么办...
【问题讨论】:
-
将您的平台从 AnyCPU 更改为 x86
标签: c# dll gac cil openoffice-calc