2013-02-22 61 views
0

我有一个使用VS2003 Ver 7.1.6030开发的.NET 1.1 Web应用程序,使用VB.NET作为代码;我最近在VS2010 .NET 4.0中创建了一个类库来添加能够使用System.Mail SmptClient发送邮件,但是当我尝试添加对.NET 1.1项目的引用时,它给了我以下错误:我可以在.NET 1.1项目中使用在VS2010 .NET 4.0中创建的类库

“A无法添加对libraryname.dll的引用。这不是有效的程序集或COM组件。只有扩展名为'dll'和COM组件的程序集才可以引用。请确保该文件是可访问的,并且它是一个有效的程序集或COM组件。“

我在做什么错?这可能吗?

非常感谢您的帮助!

大卫

+0

你的机器上是否有“libraryname.dll”文件? – 2013-02-22 15:24:49

+0

是的,我将它从VS2010开发机器复制到VS2003开发机器上,然后尝试添加为文件引用。 – dggonzalez 2013-02-22 15:30:16

+0

这不能工作,你只能在VS2003中使用.NET 1.x程序集。在VS2010中创建.NET 1.x程序集是不可能的。很高兴你退休VS2003,十年在软件工程,特别是网络应用程序的狗生活很多。 – 2013-02-22 16:16:08

回答

0

你不能在.net 1.1项目中直接使用.net 4 dll(可以使用4中的1.1)。 唯一的解决方案(除非您可以升级框架版本)包装您的功能(即在WCF自托管服务中)并通过Web服务或其他IPC技术使用它。

+0

谢谢,它现在正在工作,至少是我之前使用.NET 1.1电子邮件解决方案的服务,无论如何,我将不得不将我的Web应用升级到最新的.NET框架,但它将在今年晚些时候。 – dggonzalez 2013-02-22 17:45:30

0

尝试类似如下(发现这个前一阵子,并保持它在我的笔记):

// Load the assembly 
Assembly a = Assembly.LoadFile(@"C:\PathHere\DLL.dll"); 

// Load the type and create an instance 
Type t = a.GetType("ClassLibrary.ClassName"); 
object instance = a.CreateInstance("ClassLibrary.ClassName"); 

// Call the method 
MethodInfo m = t.GetMethod("MethodName"); 
m.Invoke(instance, new object[] {}); // Get the result here 

下面是参数的详细例子:Reflection: How to Invoke Method with parameters

相关问题