Зарегистрируйте файл .NET COM DLL на клиентском компьютере

Мне нужны данные по:

Я создал файл DLL с помощью .NET. Этот файл DLL предназначен для использования в приложениях ASP Classic и ASP.NET. Я создал пакет установки и развертывания и добавил результат решения в папку GAC. После этого создание экземпляра в ASP Classic не работало. Я не уверен, может ли он загружаться из папки GAC.

В качестве альтернативы я преобразовал эту DLL как COM, добавив наследование от ServiceComponent и другие необходимые изменения, но при регистрации на клиенте как COM выдает ошибку:

один или несколько файлов не содержат компонентов или библиотек типов

Что мне не хватает? Что мне делать, чтобы файл DLL можно было использовать в ASP Classic и ASP.NET?


person user1480864    schedule 02.01.2014    source источник
comment
stackoverflow.com/questions/2378730 /   -  person Nagaraj S    schedule 02.01.2014


Ответы (1)


Шаги ...

Visual studio: start a new class library
Properties > Application : make assembly COM-Visible
Properties > Build : Register for COM interop
Properties > Signing: Sign the assembly

Затем соберите проект.

Запустите командную строку Visual Studio от имени администратора (найдите ее в меню ОС):

cd <path to your dll>
RegAsm /register <name of your dll>.dll /tlb:<name of your dll>.tlb
gacutil -i <name of your dll>.dll
IISreset (not a bad idea to reset after these stepts in your development environment because the dll gets cached)

Это должно делать свое дело...

Последний совет ... Создайте новый проект с нуля (просто Hello World) и запомните описанные выше шаги в своей ДНК. Это одна из тех областей, где ... это работает - нет, не работает - и теперь это снова работает, играет большую роль ;-)

person Paul    schedule 02.01.2014
comment
Хмм хорошо. Попробую посоветовать построить новый проект с нуля. Как мне развернуть эту dll как COM на клиенте? смогу ли я загрузить .net dll в gac в классическом asp? - person user1480864; 02.01.2014
comment
Я развернул, скопировав dll на целевую машину и запустив regasm и gactutil на целевой машине. Не знаю, есть ли у вас эти инструменты на целевой машине. Возможно, вы сможете создать установку, но у меня нет опыта создания такой установки. - person Paul; 03.01.2014
comment
Я создал решение с нуля и смог разместить его как компонент COM. Я могу использовать этот COM, разработанный в .net, в классе asp, но он не работает в asp.net. В моем локальном поле разработчика я вижу свой компонент на вкладке COM, но путь показывает файл .tbl, а не dll в VS2010. Что мне делать, чтобы этот COM-компонент также можно было использовать в asp.net, добавив ссылку? Могу ли я поместить dll в GAC или system32 через установку? - person user1480864; 03.01.2014
comment
я получаю эту ошибку при добавлении .tlb ref: ссылка на не может быть добавлена. преобразование библиотеки типов в сборку .net не удалось. - person user1480864; 03.01.2014