Вариант 2 обычно не работает.
Если программа хранит все свои файлы в своей собственной папке в C:\Program Files\myprog или где-либо еще, вы можете просто переместить эту папку в другую систему с идентичными зависимостями или независимо от того, от чего зависит программа (архитектура, тип жесткого диска, библиотеки, серийный номер ...).
Но как только приложение начинает хранить файлы конфигурации или библиотеки DLL в папке Windows или в любом другом месте, их трудно найти.
Если теперь программа также использует реестр для хранения некоторой информации, вы можете почти забыть об этом!
Видите ли, простое перемещение папки программы работало, возможно, во времена DOS (даже тогда, не всегда), но чем новее такое приложение, тем более вероятно, что некоторые файлы или информация будут распространяться по разным местам или зависеть от так легко копируемая информация (например, некоторые средства защиты от копирования)