c#excel动态链接库-can';t添加对指定文件的引用-regasm
在另一台计算机上部署和注册c#excel动态链接库-can';t添加对指定文件的引用-regasm,c#,dll,windows-vista,excel-2007,regasm,C#,Dll,Windows Vista,Excel 2007,Regasm,在另一台计算机上部署和注册.NetExcel.dll时,当尝试在VBA编辑器中添加对dll的引用时,出现错误无法添加对指定文件的引用 我已经在visualstudio中的C#中创建了Excel.dll,它在我的机器上运行良好,使用windows7和office2010。在我的计算机上的excelvba编辑器中添加对dll的引用没有问题。我的问题是在另一台运行Vista和excel2007的计算机上部署。我将dll复制到此计算机,并使用regasm注册dll 谁能给我指出正确的方向吗?以下是代码和
.Net
Excel.dll
时,当尝试在VBA
编辑器中添加对dll
的引用时,出现错误无法添加对指定文件的引用
我已经在visualstudio
中的C#
中创建了Excel.dll
,它在我的机器上运行良好,使用windows7
和office2010
。在我的计算机上的excelvba
编辑器中添加对dll的引用没有问题。我的问题是在另一台运行Vista
和excel2007
的计算机上部署。我将dll复制到此计算机,并使用regasm
注册dll
谁能给我指出正确的方向吗?以下是代码和regasm:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe excelDll.dll
您需要注册excel的类型库才能在引用中查看dll
i、 e.regasm.exe excelDll.dll/tlb:excelDll.tlb
标记。您需要注册excel类型库才能在引用中查看dll
i、 e.regasm.exe excelDll.dll/tlb:excelDll.tlb
马克。我最近遇到并成功地解决了这个问题——尽管我不能说自己完全理解我的解决方案起作用的原因
我的两个系统都运行Windows 7 x64。一个是Excel 2010,另一个是Excel 2007
所有C#程序集都设置为“平台目标:任何CPU”。主程序集设置为“注册COM互操作”。整个程序都是使用VisualStudio安装程序项目创建的MSI安装的
我发现,如果我将VisualStudio安装程序项目“Target Platform”设置为“x64”,那么它可以在Excel2010中工作,但不能在Excel2007中工作。相反,如果我将VisualStudio安装程序项目“Target Platform”设置为“x86”,它在Excel2007中工作,但在Excel2010中不工作
遗憾的是,我无法在同一台机器上同时测试两个Excel版本,但至少这可以让它为您工作 我最近遇到并设法解决了这个问题——尽管我不能说自己确切地理解我的解决方案起作用的原因
我的两个系统都运行Windows 7 x64。一个是Excel 2010,另一个是Excel 2007
所有C#程序集都设置为“平台目标:任何CPU”。主程序集设置为“注册COM互操作”。整个程序都是使用VisualStudio安装程序项目创建的MSI安装的
我发现,如果我将VisualStudio安装程序项目“Target Platform”设置为“x64”,那么它可以在Excel2010中工作,但不能在Excel2007中工作。相反,如果我将VisualStudio安装程序项目“Target Platform”设置为“x86”,它在Excel2007中工作,但在Excel2010中不工作
遗憾的是,我无法在同一台机器上同时测试两个Excel版本,但至少这可以让它为您工作 只是为了添加到我上面的帖子-我收到了报告的“无法添加引用”错误和(如果我使用CreateObject而没有添加引用)一个“许可证不可用”错误。只是为了添加到我上面的帖子-我收到了报告的“无法添加引用”错误和(如果我使用CreateObject而没有添加引用)一个错误“许可证不可用”错误。
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";
}
}
}