Мне нужно обновить dll с сайта в моем проекте WPF. Что касается обновления файла .exe или msi, все понятно. Но как насчет DLL? Я не знаю, с чего начать или как это должно выглядеть ... Я реализовал обновление exe через xml-файл - прочитал xml-файл с сервера, а если версия выше - загрузите эту новую версию. Что касается dlls - их много, они могут иметь новые версии или новые DLL вообще ... Итак, у меня есть вопрос вообще - КАК ПРОВЕРИТЬ ПРОВЕРКУ? (примеры оценены или просто теоретические ответы). И многие мелкие вопросы, такие как «Мне нужно прочитать xml-файл - как его автоматически генерировать» (написать все dllls не очень хорошо). Жду ваших советов.wpf AutoUpdate dlls?
ответ
Во-первых, рассмотрим ClickOnce deployment.
Если ClickOnce
не подходит для вас (у него есть ограничения по сравнению с установщиками). Вы можете реализовать собственный механизм самообновления.
Обычно это делается автономной утилитой обновления (назовем ее update.exe
), которая проверяет ваш сайт обновлений по расписанию.
Если вам необходимо развернуть новую версию приложения (с обновленными EXEs, DLLS и файлы данных), можно определить XML, что перечислить последнюю информацию о версии всех файлов,
<files>
<file name="foo1.exe" version="2.3.0.2" hash="23ac4544490cb3bac23ac4544490cb3bac" downloadurl="youwebsite.com/dl/v23/foo1.exe"/>
<file name="subdir/foo2.exe" version="5.2.1.1" hash="..." downloadurl="..." />
<file name="bar.dll" version="1.3.0.2" hash="..." downloadurl="..." />
<file name="subdir/bar2.dll" version="1.3.0.3" hash="..." downloadurl="..." />
</files>
Когда запускается update.exe, он загружает и анализирует этот xml, чтобы определить, какие файлы необходимо обновить, и загрузить эти файлы с URL-адреса загрузки, проверить целостность файлов с хэш-значением и остановить приложение для замены исходных файлов , а затем перезапустите приложение.
Чтобы ответить на ваш вопрос о том, как создать этот огромный XML:
Конечно, не отредактированный вручную. Напишите утилиту, которая выполняет итерацию через все файлы в каталоге установки (последняя версия), для каждого файла, получает версию файла (используйте класс System.Version
), размер файла (используйте класс System.IO.FileInfo
), генерирует хеш-значение из содержимого файл (используйте что-то вроде System.Security.Cryptography.SHA256
) и сформируйте hugh xml (используйте класс XDocument/XmlDocument
).
Хорошо, спасибо. Я постараюсь. и напишите позже о результатах – Lili
- 1. Приложение AutoUpdate .net/wpf
- 2. autoupdate список в wpf
- 3. winrt autoupdate
- 4. Поделиться ресурсами между dlls
- 5. NSIS - приложение Silent Autoupdate
- 6. Плагины Autoupdate VIM?
- 7. проверки резюме AutoUpdate
- 8. Magento autoupdate некоторые таблицы
- 9. Install4j autoupdate version сравнение
- 10. Semi ClickOnce autoupdate
- 11. Nuget autoupdate на сайте
- 12. AutoUpdate Chrome Extension GPO
- 13. использование события для autoupdate
- 14. NSManagedObjectContext: autoupdate или нет?
- 15. конфликтующие Dlls
- 16. Autoupdate Java часы, время верстку
- 17. P2 Autoupdate из веб-репозитория
- 18. приложение для Android Market autoupdate
- 19. Autoupdate первичного ключа в андроиде
- 20. Android autoupdate с собственного сервера
- 21. Вложение .dlls в .dlls - Сборка разрешений в C#
- 22. Обертка нескольких C++ .dlls с несколькими C# .dlls
- 23. python module dlls
- 24. WinCE vs. Win32 dlls
- 25. Новая версия System.Web.WebPages dlls
- 26. Декомпиляция нескольких Dlls
- 27. Значение windbg! Dlls output
- 28. Выгрузить все qt dlls
- 29. Acessing DLLs в VB.NET
- 30. защита обфускации dlls
Я не вижу разницы между обновлением exe и обновлением dll. вы помещаете информацию о версии dll в один и тот же файл xml и загружаете dll, если новая версия найдена, как и exes. – kennyzx
@kennyzx ok, и каков способ создания этого огромного xml? – Lili