Включение exe в другой exe - PullRequest
       0

Включение exe в другой exe

2 голосов
/ 10 октября 2011

Предполагается, что у меня есть исполняемый файл mainprogram.exe , а другой - Update.exe .Я хочу получить следующее: при запуске Update.exe он заменяет mainprogram.exe, например, C: \ Program Files \ MyProgram \ mainprogram.exe.Смысл заключается в том, чтобы включить исполняемый файл, который необходимо заменить, в Update.exe, чтобы он был решением «все в одном».

Также обратите внимание, что я не могу создать Update.exe, который будет загружать mainprogram.exe из Интернета, он уже должен быть включен в Update.exe.

Ответы [ 4 ]

4 голосов
/ 10 октября 2011

В здании:

  1. скопировать UPDATE.EXE для встраивания в MAIN.EXE в качестве ресурса

Во время выполнения (время обновления)

  1. удалить UPDATE.EXE из ресурса на жесткий диск
  2. запустить UPDATE.EXE с соответствующими параметрами (аргументы командной строки, в зависимости от ситуации)
  3. попытаться удалить UPDATE.EXEобщий файл, который MAIN.EXE создаст и оставит открытым
  4. при выходе из MAIN.EXE, дескриптор файла будет освобожден, что позволит UPDATE.EXE продолжать делать то, что должно - заменить MAIN.EXE новымверсия
  5. запустите MAIN.EXE из UPDATE.EXE
  6. (необязательно), удалите UPDATE.EXE из MAIN.EXE, так как он вам пока не нужен.
1 голос
/ 10 октября 2011

Вы можете использовать ресурсы .NET и получать к ним доступ через Properties.Resources. Если вы хотите скопировать содержимое ресурса на жесткий диск, вы можете использовать System.IO.File.WriteAllBytes.

Добавление и редактирование ресурсов (Visual C #)

1 голос
/ 10 октября 2011

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

Вот ссылка MSDN для этого .

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

1 голос
/ 10 октября 2011

Вы можете просто использовать архив SFX - работает почти так же, как программа установки и «самоизвлечение». Многие программы архивации позволяют это, или вы можете просто написать проект установки в .NET, который будет делать то же самое, если вам все равно придется включать все файлы в программу обновления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...