Стратегия развертывания WPF dilemma.clickonce (ограниченная настройка) + автообновление против установщика (неограниченная стоимость) без автообновления - PullRequest
0 голосов
/ 31 мая 2010

Я столкнулся с проблемой развертывания. Я создал WPF application с visual studio 2008 и создал installer (msi), который работает нормально. Но тогда трудно добавить automatic обновление к нему. я видел эту статью на windowsclient.net, но она кажется довольно старой, но могла бы быть для меня идеальной. Затем я посмотрел на .Net приложение updater block v2.0, которое использует enterprise library june 2005 по какой-то причине он не устанавливается на моей машине.

Я подумал, что мне нужно будет использовать более новую библиотеку Enterprise, поэтому я installed and compiled Enterprise 4.1(october 2008), но ничего лучше не произошло. Поэтому я решил попробовать CLickonce развертывание. После борьбы с ним это было почти идеально. что, когда я тестировал обновления, предоставляемые clickonce на моей машине с XP, я не заметил необходимости иметь sqlite dll in the GAC. Конечно, это было уже там. Я заметил, что когда я переехал в Vista, есть проблема. После проверки сети я знаю it's impossible to add a dll to the Global Assembly Cache.
Теперь я застрял, я думаю, что врезался в стену. Кто-нибудь может поделиться своим опытом? Я хочу попробовать блок обновления, если смогу получить помощь.

Спасибо, что прочитали это!

Ответы [ 2 ]

1 голос
/ 01 июня 2010

(не подходит для комментария)

Вот кое-что полезное - вы можете развернуть SQLCE dll локально, вместо того, чтобы устанавливать его как предварительное условие, что облегчает развертывание.Ознакомьтесь с этой статьей .

Это еще одна полезная статья: как защитить свои данные от обновлений ClickOnce .

Это будет иметь больше смысла, если вы проверите эту ветку .У меня есть сообщение в этой теме, в котором есть две ссылки.Один указывает на способ ClickOnce для обработки развертывания базы данных, другой - на поток, который по сути такой же, как в статье блога выше.

0 голосов
/ 31 мая 2010

Во-первых, вы не можете использовать этот блок обновления.Это было для .NET 1.1.Он был помечен как устаревший, когда развертывание ClickOnce было добавлено в .NET 2.0.

Возможно, вам не нужно устанавливать эту DLL в GAC.Во многих случаях вы можете просто включить его в развертывание, и он найдет локальную ссылку и будет использовать ее.Это зависит только от DLL.Итак, вот что я рекомендую вам попробовать:

Добавьте dll в ваш проект.Установите для действия «build» значение «none».Установите для параметра «копировать в локальный каталог» значение «не копировать».

Удалите ссылку в своем проекте на эту DLL и повторно добавьте ее.Но вместо того, чтобы выбрать его из GAC, перейдите к тому, который вы только что добавили в свой проект, и выберите его.В ссылочных свойствах установите «copy local» на «true».

Теперь, когда вы запустите его, он получит доступ к локальной копии, а не будет искать ее в GAC.

Как я уже сказал, в некоторых случаях это прекрасно работает.Это работает для SQLCE и DirectX, но не для чего-то вроде Infragistics.Некоторые сборки действительно должны быть установлены в GAC.Единственный способ узнать это, если вы попробуете это.

Если вам в конечном итоге придется поместить его в GAC, вы можете создать MSI для этого и развернуть его в качестве предварительного условия для приложения ClickOnce.Таким образом, вы все еще можете использовать ClickOnce для вашего основного приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...