Развертывание приложения на основе MEF одним щелчком мыши - PullRequest
6 голосов
/ 31 октября 2011

У меня есть приложение, представляющее собой оболочку с кучей частей MEF.Хотя пользователь может добавлять новые детали MEF в некоторые специальные места в своей файловой системе, для правильной работы самого приложения необходимо развернуть около 5 или 6 из этих библиотек.Я хотел бы использовать щелчок один раз, чтобы выполнить развертывание.Каков наилучший способ сделать это?

Самое простое, что я мог придумать, это просто сослаться на библиотеки DLL в IDE и пометить их как контент.Тогда они будут развернуты.Это означает жестко заданные пути к файлам (отладка / выпуск и т. Д.).Похоже, что должен быть лучший способ.

Второй порядок - копировать только что созданные версии DLL MEF в общий каталог и всегда ссылаться на них в проекте и помечать их как «контент».

Я видел ссылку на создание распространяемого в другом вопросе ( Развертывание частей MEF ).Возможное решение во многом похоже на то, что вы копируете все в каталог, архивируете его, а затем распаковываете на клиенте - что в принципе и является явной ссылкой на «контент» в моей идее выше (я думаю).1010 * Другие варианты?Большое спасибо заранее!

1 Ответ

1 голос
/ 08 мая 2012

У меня есть приложение, которое обращается к различным сторонним библиотекам. Первоначально, когда я выпустил свое приложение через ClickOnce, оно было размером около 22 МБ, и, поскольку это был первый выпуск, мне пришлось публиковать довольно много обновлений в течение первых нескольких месяцев, когда оно использовалось моей базой пользователей.

Это было слишком много данных для некоторых из моих пользователей, у которых в то время были довольно медленные соединения для передачи данных. Я должен был найти лучшее решение.

В итоге я создал фиктивное решение Visual Studio с именем My ClickOnce Application - Prerequisites . Из этого проекта я добавил все сторонние зависимости, необходимые для моего приложения, и добавил проект установщика MSI, который установил библиотеки в Windows GAC. После сборки установщика MSI я создал загрузчик и добавил его в Visual Studio для ClickOnce

В моем проекте приложения ClickOnce все, что мне нужно было сделать, это выбрать свой новый предварительный компонент в Visual Studio и установить для каждого из связанных dll-компонентов «Предварительные условия» в диалоговом окне «Файлы приложения» в VS.

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

Дополнительная литература

...