2010-11-02 65 views
0

我开发了一种办公工具,它可以在我的电脑中完美工作。但是当我将代码移植到另一台计算机时,代码无法工作。它显示不同的错误信息不同的时间。我创建了一个安装程序,office.dll,excel.dll和powerpoint.dll与我的exe文件一起导出,但它不起作用。我的电脑有office 2003,但目标电脑有2007和2003.如何包含office dll?

现在我怀疑也许在目标计算机中,当我的应用程序调用任何excel函数时,它由该计算机的GAC提供服务,而不是从我的计算机导出dll。为此,我有兴趣重构代码:这次我不会使用任何“using”子句让操作系统包含什么,而不是我想写一个程序集类,它将从具体位置(我相信这样就不会混淆从哪里包含excel库的2007/2003 +)。

我该怎么做?请帮忙。

一个示例代码,我也许要求如下:

using "System.NECESSARY.LIBRARY.TO.IMPORT.DLL" 

void main() 
{ 
    [dllImport("office.dll") OTHER_PARTS_GOES_HERE] 

    CLASS application= new excel() /* excel class derivess from included office.dll */ 
} 
+0

使用COM Interop,而不是dllimport。 – AlexanderMP 2010-11-02 10:39:30

+0

你是说使用:“使用Microsoft.office.interop.excel”代码?其实我想跳过这一点,我想跳过这个代码的结果包括不同的DLL比我想要的。 – seoul 2010-11-02 10:50:42

回答

0

更新:我已经安装了斑点网4.0,现在问题就解决了:-)因为DOTNET 4.0正确导出所有的dll,我需要和在目标机器上只有那些导出的dll被使用......所以没有必要对这个主题进行更多的攻击。