C# Project, GAC, DLL
本文关键字:DLL GAC Project | 更新日期: 2023-09-27 18:07:13
我构建的应用程序有问题。
我有一个项目,从这里修改它,并实现在我的程序。
简而言之,这个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)。
的样子:
解决方案
…项目1(引用TableProc)
…项目2(引用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,文化=neutral, PublicKeyToken=ce2cb7e279207b9e'或其之一依赖关系。有人试图用an来加载程序不正确的格式。)
好的,我尝试手动将这些DLL放在我的Program.exe旁边-同样的错误。
然后我发现,当你安装Open Office时,这些库是在GAC中安装的。我看了看它们,注意到它们都安装在GAC/MSIL中,但cli_cppuhelper安装在GAC/32中。
我试图手动将cli_cppuhelper程序集从GAC/32复制到GAC/MSIL,并得到此错误:
错误2:不是一个有效的Win32应用程序。(来自HRESULT的例外:0 x800700c1))
由此我明白了,我的应用程序,当寻找DLL时,它只在GAC/MSIL
中查找请帮帮我,我不知道该怎么办
对于将来发现这个的人。
问题是Visual Studio中的目标平台不正确。.dll需要使用正确的位版本进行编译。
您需要将Visual Studio中的目标平台更改为:
- 64位-> x64
- 32位-> x86
注意:AnyCPU不工作
将您的平台从AnyCPU更改为x86。