19 / 19 / 6
Регистрация: 28.02.2011
Сообщений: 534
1

Проверка всех необходимых DLL при запуске программы

31.03.2017, 11:23. Показов 4684. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.
Как сделать так чтобы при запуске программа проверяла сразу наличие всех необходимых DLL а не тогда когда будет вызвана эта функция из данной DLL.

А если точнее то вышло так. К проекту через NuGet я подключил JSON решение. На моей машине всё хорошо работает, и на сервере тоже всё хорошо работало пока через месяц на запустили функционал связанный с JSON DLL. И оказалось что DLL просто нету и программа отвалилась.

Так вот как сделать так чтобы программа сома проверяла наличие необходимых DLL на сервере?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2017, 11:23
Ответы с готовыми решениями:

При первом запуске программы автоматическая установка необходимых библиотек
Подскажите. Как можно реализовать на VB автоматическую установку библиотек которые используются в...

Загрузка DLL при запуске программы
Как можно автоматически загрузить DLL в стороннее приложение при его запуске (без своей программы)?

Завершение программы с ошибкой при запуске (ntdll.dll)
Имя сбойного приложения: Rainlendar2.exe, версия: 2.8.1.0, отметка времени: 0x4d4bfe10 Имя...

Проверка доступности подключения к БД при запуске программы
Подскажите как правильно проверить доступно ли подключение к сетевой БД При недоступности первого...

16
Эксперт .NET
12090 / 8369 / 1280
Регистрация: 21.01.2016
Сообщений: 31,548
31.03.2017, 11:26 2
fufel, а если программа проверит и выяснится, что нужной библиотеки нет, то что она сделать сможет? Спокойно продолжит работать что ли?

По мне, такая проверка бесполезна. Просто нормально нужно дистрибутив собирать и всё. Никакие проверки библиотек не нужны.
0
140 / 137 / 22
Регистрация: 16.02.2012
Сообщений: 453
31.03.2017, 14:42 3
Легко - берешь список референсных сборок и проверяешь их наличие.
0
19 / 19 / 6
Регистрация: 28.02.2011
Сообщений: 534
04.04.2017, 11:56  [ТС] 4
Добрый день.

Извиняюсь за задержку, всёже выходные были ))))

Usaga, Кокрасто я и имел ввиду что если нету библиотеке то и работать не должна.

Я имел ввиду если встроенная настройка в студии? Если нету то нету, но если есть то может подскажете?
0
Эксперт .NET
12090 / 8369 / 1280
Регистрация: 21.01.2016
Сообщений: 31,548
04.04.2017, 11:59 5
fufel, настройки в студии нет, она состав дистрибутива доверяет программисту.

Мне кажется, что вы не в ту сторону смотрите. Вам нужно сосредоточиться на том, чтобы не косячить так впредь (а забытая сборка - серьёзный косяк), а не на том, чтобы приложение следило за составом своих файлов (что просто бесполезно).
0
Exerion
04.04.2017, 13:48
  #6

Не по теме:

Кокрасто :D

0
19 / 19 / 6
Регистрация: 28.02.2011
Сообщений: 534
04.04.2017, 22:17  [ТС] 7
Usaga, - большое спасибо. Раз нету то нету.

А так да ты полностью прав но битая сборка это большой косяк, но в у меня такая ситуация что пишу программу на своём компе и время от времени перекидываю её на сервер (время да хороший дебаг и на проверку сборки просто нету).

Вот и спросил а вдруг есть )))

Всё всем спасибо, тема закрыта.
0
Эксперт .NET
10530 / 6458 / 1502
Регистрация: 25.05.2015
Сообщений: 19,579
Записей в блоге: 14
05.04.2017, 06:37 8
Настройте проект так, чтобы все файлы при сборке копировались в один выходной каталог и его подкаталоги. Тогда больше не забудете.
Цитата Сообщение от fufel Посмотреть сообщение
время да хороший дебаг и на проверку сборки просто нету
А это печально.
0
26 / 26 / 7
Регистрация: 27.06.2015
Сообщений: 188
06.04.2017, 17:04 9
Я думаю программа в любом случае выдаст ошибку, если в ней используется какая либо функция из подключаемой внешней библиотеки, и если эта библиотека будет отсутствовать. Лично я считаю, что это полный бред проверять при запуске наличие файлов.dll
0
19 / 19 / 6
Регистрация: 28.02.2011
Сообщений: 534
11.04.2017, 17:45  [ТС] 10
LEX38RUS, - Не сказал бы, да и пишу о возможности проверки. То есть если встроенные механизм в студию или нету таково. Всегото.

Rius, Если я тебе расскажу как у нас проекты в жизнь уходят, тебе сразу станет плохо ))))

А так всем спасибо, раз нету что то готового то сделаем всё своими руками )))))
0
1453 / 845 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
11.04.2017, 20:06 11
Цитата Сообщение от fufel Посмотреть сообщение
А так всем спасибо, раз нету что то готового то сделаем всё своими руками )))))
Лучше почитай про системы контроля версий и непрерывную интеграцию.
0
64 / 68 / 18
Регистрация: 21.10.2015
Сообщений: 228
11.04.2017, 23:18 12
Цитата Сообщение от LEX38RUS Посмотреть сообщение
Лично я считаю, что это полный бред проверять при запуске наличие файлов.dll
а что скажешь про динамическую загрузку сборок? стоит напомнить, что тот же юзверь, глупый по дефолту и я это знаю из личного опыта, любой загружаемый файл может потереть антивирус на пример, так не целесообразно ли проверять наличие сборки в указанном месте перед поздним связыванием? (как пример)
0
Эксперт .NET
12090 / 8369 / 1280
Регистрация: 21.01.2016
Сообщений: 31,548
12.04.2017, 04:02 13
iDReeM, тут речь идёт о некоем серверном ПО, так что криворукий юзверь отсекается. Да и если человек настолько инвалид, что при копировании может часть файлов потерять, то неработающая программа не самая большая его проблема.

А целесообразности в самопроверке я не вижу. Лишняя работа. Нужно нормально дистрибутив собирать.
0
19 / 19 / 6
Регистрация: 28.02.2011
Сообщений: 534
12.04.2017, 12:26  [ТС] 14
Usaga, я согласен нужно нормально дистрибутив собирать, но под словом дистрибутив, ты явно имеешь ввиду инсталяционный файл со всеми DLL внутри.

Если копнуть глубже то эта проблема может возникнуть в любой ситуации (не только в моей).
И может получится так что не хватает системных DLL (которые должен ставить Windows Update) но почему то что то сбойнуло а они не поставились.

Добавлено через 2 минуты
П.С. Решение было найдено, при создание формы я создаю тестовый объект. и если он не может создаться то выводит сообщение о том что чего то не хватает.

Всем спасибо.
0
Эксперт .NET
12090 / 8369 / 1280
Регистрация: 21.01.2016
Сообщений: 31,548
12.04.2017, 12:27 15
Цитата Сообщение от fufel Посмотреть сообщение
но под словом дистрибутив, ты явно имеешь ввиду инсталяционный файл со всеми DLL внутри.
Нет, под "дистрибутивом" я понимаю кучку файлов готовых для передачи куда-либо и для прямого запуска либо сразу, либо после распаковки\установки. В общем случае, я имел в виду то, что студия вываливает в bin\Release.
0
64 / 68 / 18
Регистрация: 21.10.2015
Сообщений: 228
12.04.2017, 17:30 16
Цитата Сообщение от Usaga Посмотреть сообщение
Лишняя работа.
1 масив строк, 1 цикл, как много работы)
0
Эксперт .NET
12090 / 8369 / 1280
Регистрация: 21.01.2016
Сообщений: 31,548
12.04.2017, 17:55 17
iDReeM, действительно.
0
12.04.2017, 17:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.04.2017, 17:55
Помогаю со студенческими работами здесь

Проверка значения переменной при запуске программы
Здравствуйте! Вот мой код: if (x == "1") { y = "1"; } else { if ( y == "1" ) { //...

Dll-ка работает только один раз при каждом запуске программы
Здравствуйте. Есть файл .dll-ки, написанный на другом языке с несколькими известными...

При запуске программы выдаёт ошибку, связанную с .dll файлом OpenGL
Добрый день Столкнулся с проблемой, что при установке TaoFraemwork файл Tao.Freeglut.dll не...

Проверка обновлений программы при запуске и запрос на это самое обновление
подскажите пожалуйста, как реализовать следующие функции в программе: 1. Мини-чат ( небольшое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru