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