Можно ли упаковать файлы ресурсов в приложение EXE? - PullRequest
0 голосов
/ 04 января 2019

Я занимаюсь разработкой небольшого приложения на C # в Visual Studio 2012. Проект представляет собой консольное приложение, использующее .NET 4.5. Я довольно новичок в разработке VS2012 и C # - мой опыт работы с HTML / XML и JavaScript, но после многих проб и ошибок (и поисков в Google) приложение работает так, как и ожидалось. Тем не менее, у меня есть вопрос, касающийся файлов проекта.

Когда я создаю приложение для выпуска, многочисленные файлы помещаются в папку BIN вместе с действующим EXE-файлом, который вы запускаете. Эти файлы имеют следующие имена:

  • AppName.exe.config
  • AppName.pdb
  • AppName.vshost.exe
  • AppName.vshost.exe.manifest
  • AppName.vshost.exe.config

Папка также включает в себя два DLL-файла, используемых в качестве файлов ресурсов, плюс некоторые дополнительные файлы, названные, как указано выше, но с использованием имени DLL-файла вместо «AppName». Только три файла обновляются каждый раз, когда я создаю приложение, поэтому мне интересно, все ли они нужны. Если возможно, я бы хотел упростить количество файлов, копируемых в производство.

Требуются ли эти дополнительные файлы для работы EXE-файла, и если да, могут ли они быть упакованы в сам EXE-файл для оптимизации процесса развертывания?


Дополнительная информация

Рассматриваемое приложение ссылается на два DLL-файла, включенных в продукты Office 2016. Я поставил галочку на опции для вставки ссылок, по-видимому, поэтому он копировал файлы DLL в папку проекта.

В настоящее время мой процесс развертывания заключается в копировании всех файлов (* .exe, а также файлов, упомянутых выше) из папки BIN проекта в сетевое расположение, к которому пользователи имеют доступ READ. Затем EXE-файл называется клиентским компьютером по UNC-пути.

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

1 Ответ

0 голосов
/ 06 января 2019

Вам понадобится файл AppName.exe и все зависимые библиотеки DLL, на которые он ссылается. Я не уверен, какие ресурсы вы используете, но, учитывая, что они существуют в DLL, которую использует ваш EXE-файл, их необходимо развернуть на целевой машине. Вы можете найти больше информации здесь:

DLL Найти заказ

ПРИМЕЧАНИЕ: Это может быть тот случай, когда эти DLL уже развернуты на ваших клиентских ПК Office и к ним можно получить доступ в GAC. Учитывая вопрос, вы можете обновить, чтобы включить эту информацию.

Файл .vshost используется для отладки Visual Studio и не требует развертывания. Возможно, вы захотите развернуть файл AppName.exe.config, если в нем содержится информация времени выполнения, необходимая для отклонения от стандартной конфигурации .NET, или снова есть параметры приложения, включенные в ваше приложение. Подробнее здесь .

Что касается наличия только .exe в конце компиляции, вы можете проверить ILMerge, у которого уже есть ответ, хотя я не знаю, как он будет работать с ресурсами - какими бы ресурсами вы ни пользовались.

ILMerge

...