Я продаю решение для автообновления (AutoUpdate +, второстепенный плагин) и поэтому имею большой опыт переноса приложений Windows в последние версии, но при этом все еще поддерживаю обратную совместимость. Перенос с Windows XP на Windows 7 может быть большой проблемой (при переходе с Windows Vista на Windows 7 практически не должно быть различий).
Window XP не важно, где находится ваше приложение, и поэтому программисты будут выгружать логику своего приложения и поддержки (файлы журналов, файлы конфигурации, профили пользователей и т. Д.) В одно и то же место в папке «C: \ Program Files \». , Переместите это приложение на Windows 7, и вы начнете находить некоторые необычные поведения. Для начала, вы заметите, что файлы, кажется, «исчезают». Вместо изменения файла журнала в общем расположении Program Files вы можете получить несколько отдельных копий для каждого пользователя в разделе «Совместимость / Program Files». Windows Vista / 7 представила виртуализацию файловой системы и теперь будет создавать отдельные пользовательские экземпляры файлов, чтобы гарантировать, что у каждого пользователя есть собственная защищенная копия.
Другая проблема, с которой вы столкнетесь в Windows Vista и, в меньшей степени, в Windows 7, - это запросы контроля учетных записей (UAC). Это похоже на проблему, описанную выше, поскольку новые ограничения безопасности теперь приводят к тому, что Windows Vista / 7 запрашивает у пользователя подтверждение для продолжения. Наиболее заметная область, в которой это происходит, - это когда вы вмешиваетесь в исполняемые файлы в конфиденциальных каталогах, устанавливаете приложения и драйверы, а иногда и при попытке самообновления приложения (вышеупомянутое приложение фактически работает вокруг этих запросов с некоторой умной логикой).
Короче говоря, изменения в безопасности - самое большое различие между Windows XP и Windows Vista / 7. Лучше всего начать с того, чтобы отделить логику приложения (двоичные файлы) от поддерживающей логики, поместив последнюю в пользовательские каталоги. Некоторые приложения могут никогда не быть исправимыми, и вместо этого их можно заставить работать в режиме совместимости или запускать всегда в контексте учетной записи администратора - плохие обходные пути, но они могут подойти в вашей компании.
Саймон @ http://AutoUpdatePlus.com