Сгруппируйте несколько файлов, необходимых для запуска программы, в один исполняемый файл - PullRequest
1 голос
/ 23 мая 2011

Иногда я создаю небольшие проекты для личного использования.Поэтому я просто извлекаю каталог отладки из своего проекта и запускаю исполняемый файл всякий раз, когда мне нужно использовать свое приложение.Как можно объединить все эти файлы:

enter image description here

в один исполняемый файл.Я знаю, что могу поместить эту папку где-нибудь на моем диске c и иметь ярлык для исполняемого файла.Мне просто интересно узнать, как это можно сделать.

Ответы [ 4 ]

4 голосов
/ 23 мая 2011

Здесь важно понять две вещи:

  1. Вы никогда не должны распространять отладочную версию приложения.Всегда выполняйте компиляцию в режиме «Выпуск» для окончательного выпуска вашего приложения, которое вы разрешите использовать людям (даже если эти люди - только вы).

    Их много, много причин сделать это, но наиболее очевидным является то, что компиляция в режиме «Release» позволит оптимизировать как во время компиляции, так и во время выполнения, что позволит вашему коду работать значительно быстрее.

  2. Только один из файлов, который вы там показали, действительно необходим для запуска вашего приложения, и это сам файл .EXE.Это единственный, который вы должны распространять.Остальные файлы просто предоставляют отладочную информацию и используются Visual Studio.Поскольку вам, вероятно, не понадобится отлаживать приложение после его написания, эти файлы вам вообще не понадобятся.

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

0 голосов
/ 23 мая 2011

В этом конкретном случае вам нужен только файл .exe, так как остальные содержат отладочную информацию и т. Д.

Но, вообще говоря, dll-файлы могут быть помещены в глобальный кеш сборок (или GAC). Статья MSDN о GAC Это должно - как упомянуто в комментариях - быть обработано установщиком, но это способ избежать оставления DLL в папке программы. Как упоминает Коди, в общем случае лучше оставить их в папке с программой.

Если у вас есть ресурсы, такие как изображения или текстовые файлы, их можно встроить в исполняемый файл, указав их как встроенные ресурсы в Visual Studio.

Затем они доступны как потоки внутри исполняемой сборки (this.GetType().Assembly.GetManifestResourceStream(name), где name - это пространство имен по умолчанию "." Filename. С методом GetManifestResourceNames можно ознакомиться, если вы хотите узнать имена встроенных ресурсов.

Но включение ресурсов также означает, что вам придется переписать часть загрузки ресурсов, чтобы использовать потоки ресурсов, поэтому это требует дополнительной работы.

0 голосов
/ 23 мая 2011

Вам не нужно объединять всю папку, вы можете просто переместить один файл 'ConsoleApplication26.exe' туда, куда вам нужно, и без проблем запустить его самостоятельно. Другие файлы просто содержат информацию, которая используется при отладке программы в Visual Studio IDE.

0 голосов
/ 23 мая 2011

Вы пытались скопировать только exe-файл в отдельный каталог и запустить exe-файл? Другие 3 файла, перечисленные на скриншоте, не нужны для запуска приложения.

...