Страницы

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

суббота, 21 декабря 2019 г.

Какие файлы должны быть в релизной сборке?

#c_sharp #net #visual_studio #visual_studio_2015


Добрый день!

Похоже я достиг нового этапа в становлении программистом, когда зашел в папку с одной
из разработанных программ, и стал немыслимо негодовать с криками "Что за хрень?!!".

Всем нам, еще с тех времен, когда игры качали с торрентов, а для активации и взлома
игры нужно было файлы из папки "Crack" поместить в папку с игрой, знакома картина,
как должны выглядеть внутренности софта. В этих папках все хорошо структурировано:
несколько папок с библиотеками и ресурсами и сам ярлык игры.

Так вот захожу я в папку с своей программой для того, чтобы сделать установочный
файл, а там куча ненужной информации.

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

Буду благодарен любой информации, как личному объяснению, так и ссылкам на умную
и нудную документацию.

Программирую на C#, использую для этого Visual Studio 2015 и Visual Studio 2017. 

Сами вопросы:


Как разложить библиотеки и файлы программы по соответствующим папкам?
Нашел способ с прописыванием в файл с конфигурацией, но неужели это единственный
способ? Уверен есть куда более изысканный и красивый способ это сделать!
Зачем нужны файлы .pdb в релизной сборке и возможно ли от них избавиться? И если
возможно то как?
Нужны ли файлы .xml в релизной сборке? И если не нужны, то как от них избавиться?


P.s. Файлы .vshost.ext и manifest я догадался как отключить и их назначение знаю))

Всем спасибо за потраченное время и помощь!
    


Ответы

Ответ 1



В типовом проекте студия сама автоматически сложит все файлы в каталоге out/release как нужно. Наводить порядок вручную не стоит: на это тратится время, а смысла особого в наведении порядка ради порядка нет. Если вам всё же нужно что-то нестандартное... Откройте Рихтер CLR via C#, Глава 2 Компоновка, упаковка, развертывание и администрирование приложений и типов, "Алгоритм поиска файлов сборки", там есть краткое описание о том, как ищутся сборке в каталоге приложения (для закрытого развёртывания). Подключиться отладчиком. Если вам это не нужно - можно отключить в свойствах проекта (закладка Build - Advanced) для release режима. Подробно можно почитать на английском: https://stackoverflow.com/a/5457250/5752652 или у того же Рихтера. Сильно зависит от того, что это за xml-файлы. Конкретные примеры?

Ответ 2



Никак. Не надо ничего раскладывать по отдельным папкам, если это не вызвано какой-то реальной необходимостью (например, механизм загрузки ресурсов может искать сборки в папках с именами ru-ru и en-us). Нужны для отладки релизной сборки. В окончательный инсталлер их можно не включать, но если есть хоть какая-то вероятность отладки релиза, хотя бы на стадии предрелизного тестирования - стоит сохранить копию pdb. MS есть отдельный "сервер" для хранения символов - набор утилит для организации хранения pdb. XML документация - файлы с именами someassembly.xml - не нужны, кроме случая, когда ваш продукт - это именно сама сборка. Все остальное - зависит от того, что это за файлы. XML - это просто формат, в файле может лежать что угодно, так что в общем виде заранее оценить его необходимость невозможно.

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

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