c# excel dll - can't add a reference to the specified file - regasm

点点圈 提交于 2019-12-30 12:38:07

问题


When deploying and registering a .Net Excel.dll on another computer, I get an error Can't add a reference to the specified file when attempting to add reference to DLL in VBA editor.

I have created the Excel.dll in C# in Visual Studio that runs fine on my machine with Windows 7 and Office 2010. No problem adding reference to the dll in Excel VBA editor on my computer. My problem is deploying on another machine which is running Vista and Excel 2007. I copied dll to this computer and used regasm to register the dll.

Can anyone point me in the right direction? Here is code and regasm:

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";
    } 
  }
}

回答1:


You need to register the type library for excel to see your dll in References.

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

Mark.




回答2:


I recently encountered and managed to solve exactly this problem - though I can't claim to understand exactly why my solution worked.

Both my systems are running Windows 7 x64. One has Excel 2010, the other Excel 2007.

All the C# assemblies are set to "Platform Target: Any CPU". The primary assembly is set to "Register for COM Interop". The whole thing is installed using an MSI created by a Visual Studio Installer project.

I found that if I set the Visual Studio Installer project "Target Platform" to "x64", then it works in Excel 2010, but not in Excel 2007. Conversely, if I set the Visual Studio Installer project "Target Platform" to "x86", it works in Excel 2007 but not in Excel 2010.

Sadly, I'm not in a position to test both Excel versions on the same machine at the same time - but at least this might get it working for you!



来源:https://stackoverflow.com/questions/12480218/c-sharp-excel-dll-cant-add-a-reference-to-the-specified-file-regasm

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!