2012-09-18 1546 views
1

在部署和另一臺計算機上註冊.NetExcel.dll,我試圖在VBA編輯器中添加參考DLL時得到一個錯誤Can't add a reference to the specified fileC#DLL出類拔萃 - 不能添加到指定文件的引用 - regasm

我在Visual Studio運行我的機器Windows 7Office 2010細創造C#Excel.dll。在我的計算機上編輯Excel VBA編輯器時,沒有任何問題。我的問題是部署在運行VistaExcel 2007的另一臺計算機上。我複製DLL到這臺電腦,並使用regasm註冊該DLL。

任何人都可以指向正確的方向嗎?這裏是代碼和regasm:

C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ regasm.exe excelDll.dll

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.Runtime.InteropServices; 

namespace TestDll 
{ 
[ClassInterface(ClassInterfaceType.AutoDual)] 
public class Test 
{ 
    public string HelloWorld 
    { 
     get 
     { 
      return "Hello World"; 
     } 
    } 

    public void sayGoodbye1() 
    { 
     MessageBox.Show("Say Goodbye"); 

    } 

    public string sayGoodbye2() 
    { 
     return "Say Goodbye"; 
    } 
    } 
} 

回答

4

您需要註冊類型庫擅長在參考資料中查看您的dll。

regasm.exe excelDll.dll /tlb:excelDll.tlb

馬克。

-1

我最近遇到並設法解決這個問題 - 雖然我不能說明確正確地理解爲什麼我的解決方案工作。

我的系統都運行Windows 7 x64。一個是Excel 2010,另一個是Excel 2007.

所有C#程序集都設置爲「平臺目標:任何CPU」。主要程序集設置爲「註冊COM Interop」。整個事情使用由Visual Studio安裝程序項目創建的MSI進行安裝。

我發現如果將Visual Studio Installer項目「Target Platform」設置爲「x64」,那麼它在Excel 2010中工作,但不在Excel 2007中。相反,如果將Visual Studio Installer項目設置爲「Target Platform 「到」x86「,它在Excel 2007中工作,但在Excel 2010中不起作用。

不幸的是,我無法同時在同一臺機器上同時測試兩個Excel版本 - 但至少這可能會得到它爲你工作!

+0

只是添加到我的帖子上面 - 我得到了報告「無法添加引用」錯誤,並且(如果我使用CreateObject而不添加引用)「許可證不可用」錯誤。 – Loophole