Страницы

Поиск по вопросам

вторник, 31 декабря 2019 г.

Релиз программы с сторонней библиотекой. C#

#c_sharp #winforms #oxyplot


Подключил стороннюю библиотеку через NuGet(OxyPlot). Как выпустить релиз? Какие файлы
нужны для работы программы на других ПК?
    


Ответы

Ответ 1



Для работы на других ПК необходимо выполнить несколько условий: Должен быть установлен .NET Framework, версии не ниже, чем целевая версия, указанная в проекте (см. свойства проекта). Файлы сторонних библиотек, должны находиться рядом с исполняемым файлом, или быть доступными для загрузки в память любым другим способом, например через GAC, как системные сборки, или более сложную структуру папок в проекте. Вовсе не обязательно все валить в одну папку, можно аккуратно разложить по вложенным, тут главное правильно линки прописать в проекте. При штатной установке через NuGet, сторонняя библиотека линкуется в проект с параметром Copy local установленным в true. Этот параметр отвечает за необходимость копировать подключенную DLL в выходной каталог приложения. Так можно заставить копироваться и системные сборки, только в этом нет необходимости. Если сомневаетесь, что ваша подключенная DLL попадет в папку приложения, просто проверьте этот параметр в свойствах подключенной сборки. В принципе для распространения вашего приложения, достаточно переключить конфигурацию проекта в Release и выполнить построение проекта, после чего просто копировать папку /bin/Release на целевую машину или запаковать папку в архив и выложить в сеть. Если нужен инсталятор, то можно воспользоваться технологией ClickOnce (ссылку на документацию привел @Bulson в комментарии под вопросом) или любым другим инсталятором, какой больше знаком или просто нравится. В пользу ClickOnce, можно отнести встроенный механизм автоматического обновления при соответствующей настройке правил публикации. Однако если у вас большой проект, то не стоит использовать для публикации Visual Studio, т.к. ее встроенная публикация не позволяет использовать частичное обновление и клиентам придется качать все при каждом обновлении. Ручная публикация приложения ClickOnce тоже возможна, но это уже за рамками данного вопроса. UPD: У инсталлятора ClickOnce есть одна нехорошая особенность интерфейса. Несмотря на полную поддержку частичных обновлений, при которой из источника скачиваются только изменившиеся библиотеки, а остальные просто локально копируются в новую папку, по виду и поведению интерфейса можно подумать, что скачивается все приложение целиком, но это не так. Механизм работает как положено и лишний трафик не расходуется, просто интерфейсное решение не слишком удачное, хотя кому как. Данный факт проверял лично, по настоятельной просьбе одного из пользователей.

Ответ 2



При подключении библиотеки проблем не должно быть. При запуске в режиме релиза все подключенные библиотеки, автоматически переносятся к расположению программы. Проверьте папку bin/Release. Там Вы увидите свою программу и все подключенные к ней библиотеки. Чтобы использовать её на других компьютерах, просто перенесите содержимое папки на другой компьютер и запустите. В примере я подключил библиотеку AutoMapper и она сама перенеслась к файлу приложения.

Комментариев нет:

Отправить комментарий