2013-02-22 2 views
0

У меня есть веб-приложение .NET 1.1, разработанное с использованием VS2003 Ver 7.1.6030 с использованием VB.NET в качестве кода; Недавно я создал библиотеку классов в VS2010 .NET 4.0, чтобы добавить возможность отправлять письма с помощью System.Mail SmptClient, но когда я пытаюсь добавить ссылку на мой проект .NET 1.1, это вызывает у меня ошибку:Могу ли я использовать библиотеку классов, созданную в VS2010 .NET 4.0, в проекте .NET 1.1

«A ссылка на libraryname.dll не может быть добавлена. Это не является допустимым компонентом сборки или COM. Ссылки могут содержать только сборки с расширениями «dll» и COM-компонентами. Убедитесь, что файл доступен, и что он является действительным сбором или COM-компонентом. "

Что я делаю неправильно? Это возможно?

Большое спасибо за помощь!

Дэвид

+0

У вас есть файл "libraryname.dll" на вашем компьютере? –

+0

Да Я скопировал его с машины разработки VS2010 на машину разработки VS2003, затем я попытался добавить ссылку на файл. – dggonzalez

+0

Это не сработает, вы можете использовать только сборки .NET 1.x в VS2003. Создание .NET 1.x сборок в VS2010 невозможно. Когда вы уходите на пенсию VS2003, десять лет - это большая часть жизни собак в разработке программного обеспечения, особенно для веб-приложений. –

ответ

0

You не могут использовать DLL .net 4 в проекте .net 1.1 прямо (вместо этого вы можете использовать 1.1 в 4). Единственное решение (если вы не можете обновить версию фреймворка) - это обертывание вашей функциональности (т. Е. В самообслуживании WCF) и использование ее через веб-службу или другие методы IPC.

+0

Спасибо, сейчас он работает, по крайней мере, с помощью решения электронной почты .NET 1.1, которое у меня было до этого, в любом случае мне придется обновить мое веб-приложение до последней платформы .NET, но это будет в конце этого года. – dggonzalez

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

Смежные вопросы