Но есть ли способ сделать самораспаковывающийся zip-файл, который читает запись реестра, чтобы мы знали, где они установили исходную программу, чтобы иметь возможность также выгружать туда новые файлы? Я хочу, чтобы они дважды щелкнули по EXE и нажали «Готово», чтобы все работало
Ну да и нет. Есть самораспаковщики, которые могут запустить программу после распаковки всех файлов. DotNetZip, например, может производить SFX, который может это сделать.
Просто в стороне: обычный SFX - это просто zip-файл, в который добавлен исполняемый файл-заглушка. Заготовка exe может делать все, что захочет, но самое основное, что она делает, - это извлечение файлов в zip-архиве. Когда вы используете DotNetZip для создания SFX, он встраивает свою особую заглушку в zip. Эта заглушка знает, как извлечь файлы, а также знает, как вызвать программу после распаковки. Вы также можете создать свою собственную заглушку, которая может делать более экзотические вещи.
Таким образом, вы могли бы использовать SFX для своих целей. При запуске он извлекает, а затем вызывает дополнительную программу. Программа может посмотреть в реестре, а затем переместить или переместить извлеченные файлы в соответствующее место. Затем прекратить.
Для другого поворота SFX может иметь только два файла: запускаемую программу (тот, который читает реестр, и другой встроенный zip-файл. Затем, когда SFX запускается, он генерирует 2 файла. Затем он вызывает программу -to-run, который читает реестр, затем распаковывает содержащийся zip и помещает файлы в нужное место.
Хорошо, значит, вы могли бы сделать это.
Должны ли вы?
ммм, может быть. На самом деле является установщиком, поэтому вы должны решить, хотите ли вы использовать zip в качестве установщика. Не забывайте, что если вы используете SFX в качестве установщика, нет хорошего способа удалить его.