2

.Net Excel.dllを別のコンピューターにデプロイして登録するときに、エディターでCan't add a reference to the specified file参照を追加しようとするとエラーが発生します。DLLVBA

と を使用して、自分のマシンで正常に動作するExcel.dllinC#を作成しました。コンピューターのエディターでdll への参照を追加しても問題ありません。私の問題は、実行中の別のマシンに展開することです. このコンピューターにdllをコピーし、dllの登録に使用しました。Visual StudioWindows 7Office 2010Excel VBAVistaExcel 2007regasm

誰かが私を正しい方向に向けることができますか? コードとレガズムは次のとおりです。

C:\Windows\Microsoft.NET\Framework\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

2 に答える 2

5

参照で dll を表示するには、Excel のタイプ ライブラリを登録する必要があります。

すなわちregasm.exe excelDll.dll /tlb:excelDll.tlb

マーク。

于 2012-11-10T11:06:20.087 に答える
-1

は最近、この問題に遭遇し、正確に解決することができました.

両方のシステムで Windows 7 x64 を実行しています。1 つは Excel 2010、もう 1 つは Excel 2007 です。

すべての C# アセンブリは、「プラットフォーム ターゲット: 任意の CPU」に設定されています。プライマリ アセンブリは、「COM 相互運用機能の登録」に設定されています。すべては、Visual Studio インストーラー プロジェクトによって作成された MSI を使用してインストールされます。

Visual Studio インストーラー プロジェクトの「ターゲット プラットフォーム」を「x64」に設定すると、Excel 2010 では機能しますが、Excel 2007 では機能しないことがわかりました。逆に、Visual Studio インストーラー プロジェクトの「ターゲット プラットフォーム」を「x86」に設定すると、 "、Excel 2007 では機能しますが、Excel 2010 では機能しません。

残念ながら、私は両方のバージョンの Excel を同じマシンで同時にテストする立場にはありませんが、少なくともこれでうまくいくかもしれません!

于 2014-07-07T03:17:31.877 に答える