2010-11-02 63 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被使用......所以沒有必要對這個主題進行更多的攻擊。