visual studio - Какие файлы проекта winform должны быть упакованы в установщик




visual-studio winforms (2)

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

Итак, какие файлы требуются? Важны ли сценарии .cs? Или только файлы в / bin / release /?


Все файлы, необходимые для запуска приложения, можно найти в папке /bin/release , включая библиотеки DLL и сам исполняемый файл.

Это, однако, предполагает, что вы добавили эти библиотеки в свой проект, используя встроенные инструменты в Visual Studio

Изменить (спасибо Лекс Ли): Если вы еще не установили файлы времени выполнения (они обычно устанавливаются с .NET), вам необходимо установить их с https://www.microsoft.com/net


В целом : мне нравится совет Тома Блоджетта, чтобы найти зависимости и время выполнения. Ниже приведены подробные технические параметры, позволяющие определить, что происходит с проблемными приложениями. Собран в спешке.

Чистая виртуальная среда . И, очевидно, воспользуйтесь советом Лекса Ли (см. Выше комментарий к вашему вопросу), чтобы вручную настроить приложение на чистую виртуальную среду для тестирования и тестирования, а также для определения требований к развертыванию «итеративным образом».

Контрольный список : И просто для записи: универсальный контрольный список проблем с запуском приложений (которые кто-то по какой-то причине отклонил, дайте мне знать, какие ошибки вы там обнаружите? Я специалист по развертыванию, а не программист - это это больше список "идей", чем настоящий контрольный список).

ОБНОВЛЕНИЕ - сентябрь 2018 года :

Отладочные двоичные файлы - отладка последовательности запуска : вы можете вставить окно сообщения в начале последовательности запуска приложения и вставить двоичные файлы отладки в свою установку, установить его, а затем подключить отладчик к окну сообщения приложения при запуске, чтобы выполнить запуск код? (установить точку останова). Теперь вы можете отлаживать, если ваш EXE-файл вообще не работает .

  • Может быть, посмотрите этот хороший видеоурок Advanced Installer для этого «подхода отладчика вложений» . Это показывает тот же подход для кода настраиваемого действия. Процедура запуска приложений одинакова. Просто прикрепите к окну сообщения и установите точки останова.

  • Примечание : Очевидно, не забудьте перекомпилировать с выпусками двоичных файлов, как только вы знаете, в чем проблема - и повторите тестирование при запуске. Отладочные двоичные файлы не подлежат распространению - они связываются с отладочными библиотеками, установленными только MS SDK. Нормальные ПК не будут (обычно) иметь эти отладочные библиотеки.

Вид модулей Visual Studio : я видел, что рекомендуется запускать в режиме отладки в Visual Studio . Запустите проект в интерактивном режиме: Debug => Start Debugging , а затем перейдите: Debug => Windows => Modules , чтобы получить список того, что было загружено для запуска приложения. Честно говоря, я не уверен, дает ли это вам все виды зависимостей. Там может быть много разных типов, как описано здесь в файле справки Dependency Walker . Я попытался понять мозг нашего Ганса Пассанта по этому вопросу :-) , но, вероятно, он слишком подробен, чтобы в него вдаваться.

Dependency Walker : это старый инструмент Windows SDK. Это очень устарело - прошло более 10 лет с момента последнего обновления. Это был старый боевой конь, на который можно было положиться, но он не очень подходит для новых двоичных файлов. Он не поддерживает зависимости WinSxS (параллельные сборки win32) или API-Sets .

  • Я до сих пор использую его, чтобы напомнить себе о « порядке поиска модуля ». При открытом инструменте: Options => Configure Module Search Order... Windows находит файлы / модули в таком порядке поиска - и с различиями в разных версиях ОС.
  • Это, конечно, устарело, но это по крайней мере напоминание о том, как сканируются папки в Windows - и каждая версия Windows отличается - особенно с манифестами.

dumpbin : еще одна старая рабочая лошадка из Windows SDK (поиск в %ProgramFiles(x86)% в системе с установленной Visual Studio). Это инструмент командной строки. Для мазохистов :-). Честно говоря, я не знаю, имеет ли он надлежащую поддержку новейших двоичных файлов, но, похоже, поддерживается (в отличие от Dependency Walker)

ProcMon (Sysinternals): это инструмент, которым люди клянутся, когда дело доходит до решения проблем жесткой зависимости. Образец быстрого макета . Реальная сделка - подзорная труба для всего, что действительно происходит под капотом. Я не являюсь экспертом в его использовании, но всегда полезно смотреть на результат для идей. Отсутствует регистрация на COM-сервере и т. Д.

ProcessExplorer (Sysinternals): пожалуйста, проверьте этот ответ .

Fuslogvw.exe : Fuslogvw.exe говорит вам что-нибудь? (Ошибки привязки сборки .NET).

Dependencies.exe : Возможно, вы также можете попробовать эту новую переписанную версию с открытым исходным кодом Dependency Walker (того старого инструмента SDK, упомянутого выше), частично выполненную в C #: « Dependencies.exe ». Этот инструмент еще не закончен и не обладает всеми функциями Dependency Walker (я не вижу никаких функций профилирования для exe-файлов), но он поддерживает API-Sets и зависимости WinSxS - или параллельные сборки Win32 ( чего не хватает в Dependency Walker). Я не проверил это достаточно, чтобы действительно рекомендовать это - но это - открытый исходный код и следовательно проверяемый. I have contacted the author about an issue where the bundled peview.exe is identified as malware . Автор быстро вернулся, чтобы объяснить . Рекомендуем просто удалить peview.exe перед началом использования приложения.

NDepend ( wikipedia ): инструмент, который я боюсь, я не использую, но, пожалуйста, проверьте этот ответ (проверьте).

Инструменты развертывания : различные инструменты развертывания, кроме настройки Inno ( список, только основные инструменты ).

Некоторые ссылки :

.СЕТЬ





inno-setup