Как развернуть COM

Я только что закончил создание своего нового COM-проекта (C#, .NET 3.5). Этот проект будет вызываться приложением VFP. Он отлично работает на моем компьютере для разработки, но теперь мне нужно знать, как развернуть его на компьютере пользователя. Click Once недоступен для такого рода проектов, поэтому я думаю, что застрял с ручным распространением DLL.

Итак, куда мне поместить DLL и как ее зарегистрировать?

Кстати, фреймворк 3.5 уже установлен на компьютере пользователя.

ТИА


person izokurew    schedule 18.09.2009    source источник


Ответы (2)


Я действительно никогда не использовал RegSvr32 с сборками .Net, скорее я использую regasm с параметром /codebase:

    C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe /codebase mydll.dll

Вы также можете использовать параметр /tlb, чтобы экспортировать библиотеку типов и зарегистрировать ее.

Конечно проще всего просто создать установщик с помощью vstudio и он сделает это за вас.

person csharptest.net    schedule 18.09.2009
comment
Проект установщика, это то, что я сделал для COM, который мне нужно было построить для VFP. - person nportelli; 19.09.2009
comment
Я не знал об установщике. Я думал, что ClickOnce был единственным (бесплатным) способом. Спасибо за лидерство! - person izokurew; 22.09.2009

Создание описания COM-класса и интерфейсов

Сборки .Net не содержат информацию в формате, совместимом с библиотекой типов. Таким образом, программисту необходимо запустить одну из двух поставляемых .Net утилит для извлечения описания сборки класса в файл библиотеки типов.

Одной из утилит является TLBEXP.EXE, средство экспорта библиотеки типов .Net. Эта утилита командной строки принимает в качестве входных данных имя DLL-файла сборки, который нужно преобразовать в библиотеку типов. Программист также может указать имя создаваемого файла библиотеки типов.

tlbexp ComServer.dll /out:ComServer.tlb

Assembly exported to C:\Magellan\Source\Output\Debug\ComServer.tlb

После создания библиотеки типов COM-клиент может обращаться к ней для получения информации, необходимой COM-клиенту для привязки к интерфейсам COM-класса и активации COM-класса во время выполнения.

Регистрация COM-класса и интерфейсов

Чтобы класс COM был доступен клиенту во время выполнения, инфраструктура COM должна знать, как найти код, реализующий класс COM. Следующая команда выполняет это:

regasm ComServer.dll

Ваша DLL может быть размещена в любом месте, но лучше всего это C:\Program Files\MyApplication.

http://www.csharphelp.com/archives/archive190.html

person Robert Harvey    schedule 18.09.2009