Добрый день!
Похоже я достиг нового этапа в становлении программистом, когда зашел в папку с одной из разработанных программ, и стал немыслимо негодовать с криками "Что за хрень?!!".
Всем нам, еще с тех времен, когда игры качали с торрентов, а для активации и взлома игры нужно было файлы из папки "Crack" поместить в папку с игрой, знакома картина, как должны выглядеть внутренности софта. В этих папках все хорошо структурировано: несколько папок с библиотеками и ресурсами и сам ярлык игры.
Так вот захожу я в папку с своей программой для того, чтобы сделать установочный файл, а там куча ненужной информации.
Сразу хочу сказать, я искал и гуглил информацию по вопросам, которые описаны ниже, но многие темы которые могли бы мне помочь созданы давно и скорей всего люди отвечавшие там не смогут мне быстро дать дополнительные разъяснения.
Буду благодарен любой информации, как личному объяснению, так и ссылкам на умную и нудную документацию.
Программирую на C#, использую для этого Visual Studio 2015 и Visual Studio 2017.
Сами вопросы:
Как разложить библиотеки и файлы программы по соответствующим папкам? Нашел способ с прописыванием в файл с конфигурацией, но неужели это единственный способ? Уверен есть куда более изысканный и красивый способ это сделать!
Зачем нужны файлы .pdb в релизной сборке и возможно ли от них избавиться? И если возможно то как?
Нужны ли файлы .xml в релизной сборке? И если не нужны, то как от них избавиться?
P.s. Файлы .vshost.ext и manifest я догадался как отключить и их назначение знаю))
Всем спасибо за потраченное время и помощь!
В типовом проекте студия сама автоматически сложит все файлы в каталоге out/release как нужно. Наводить порядок вручную не стоит: на это тратится время, а смысла особого в наведении порядка ради порядка нет.
Если вам всё же нужно что-то нестандартное... Откройте Рихтер CLR via C#, Глава 2 Компоновка, упаковка, развертывание и администрирование приложений и типов, "Алгоритм поиска файлов сборки", там есть краткое описание о том, как ищутся сборке в каталоге приложения (для закрытого развёртывания).
Подключиться отладчиком. Если вам это не нужно - можно отключить в свойствах проекта (закладка Build - Advanced) для release режима. Подробно можно почитать на английском: https://stackoverflow.com/a/5457250/5752652 или у того же Рихтера.
Сильно зависит от того, что это за xml-файлы. Конкретные примеры?
Никак. Не надо ничего раскладывать по отдельным папкам, если это не вызвано какой-то реальной необходимостью (например, механизм загрузки ресурсов может искать сборки в папках с именами ru-ru и en-us).
Нужны для отладки релизной сборки. В окончательный инсталлер их можно не включать, но если есть хоть какая-то вероятность отладки релиза, хотя бы на стадии предрелизного тестирования - стоит сохранить копию pdb. MS есть отдельный "сервер" для хранения символов - набор утилит для организации хранения pdb.
XML документация - файлы с именами someassembly.xml - не нужны, кроме случая, когда ваш продукт - это именно сама сборка. Все остальное - зависит от того, что это за файлы. XML - это просто формат, в файле может лежать что угодно, так что в общем виде заранее оценить его необходимость невозможно.
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Доброе время сутокПомогите пожалуйста составить инъекцию для функции RtlGetFullPathName_UEx