我的构建应用程序出了问题。
我有一个来自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
的Program.exe
问题:
在构建的应用程序中,它告诉:
错误1:
无法加载文件或程序集'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中查找
请帮助,我不知道该怎么做......
答案 0 :(得分:0)
请参阅有关如何将Dll安装到GAC的文章。 http://msdn.microsoft.com/en-us/library/dkkx7f79.aspx
答案 1 :(得分:0)
史蒂夫帮助我:将你的平台从AnyCPU改为x86 - Steve Apr 2 at 9:22
答案 2 :(得分:0)
对于那些将来会发现它的人。
问题是Visual Studio中的目标平台不正确。 .dll文件必须使用正确的位版本进行编译。
您需要将Visual Studio中的目标平台更改为:
注意:AnyCPU无法正常工作。