clickonce, добавление нативных dll, com free reg

Я использую regfree com для развертывания компонента ActiveX с помощью clickonce. Компонент зависит от некоторых собственных dll, которые должны находиться в том же каталоге, что и компонент. Если я вручную скопирую собственные библиотеки DLL в каталог установки приложения clickonce (я нашел каталог с помощью System.Reflection.Assembly.GetExecutingAssembly ()), приложение будет работать нормально. Но если я включу библиотеки в проект и опубликую их, приложение не будет работать ..

Есть предложения или обходные пути?

С уважением,

Фредрик


person fsl    schedule 18.05.2010    source источник


Ответы (1)


Внедрите собственные библиотеки DLL в управляемую сборку в качестве встроенного ресурса и извлеките их на диск во время выполнения, если они отсутствуют.

Если этот процесс вам не знаком, оставьте мне комментарий, и я постараюсь его объяснить. Это не так уж и сложно.

person Sky Sanders    schedule 18.05.2010
comment
Спасибо! вы спасли мне день .. Я вижу, что dll вообще не копируются в каталог приложения .. - person fsl; 18.05.2010
comment
@fsl - значит, вы знакомы со встраиванием и извлечением ресурсов из сборки? - person Sky Sanders; 18.05.2010
comment
Вдоль строк Application.GetResourcePart (Uri relativeUri) .., а затем откройте файловый поток в: System.Reflection.Assembly.GetExecutingAssembly ())? - person fsl; 18.05.2010
comment
@fsl - я полагаю, это один из способов сделать это. Я вообще не использую .rsx файл apps. Я добавляю собственные ресурсы в свой проект в качестве содержимого и устанавливаю действие компиляции на Embedded Resource, а затем вызываю что-то вроде typeof(myclass).Assembly.GetManifestResourceStream(resourcePath). Правила определения пути к ресурсу могут сбивать с толку, но простой способ найти путь к ресурсу - это скомпилировать сборку, а затем открыть ее в Reflector и скопировать путь оттуда. Но Application.GetResource ... может подойти для ваших нужд. - person Sky Sanders; 18.05.2010
comment
спасибо, я вам очень признателен! Я согласился с Application.GetResourceStream и установил действие компиляции для ресурса .. Что, я думаю, кошерно в WPF .. :) - person fsl; 18.05.2010
comment
@fsl - с удовольствием. Увидимся. - person Sky Sanders; 18.05.2010