У меня есть приложение VB6, которое я продавал больше 12 лет. Иногда у меня есть пользователи, которым нелегко заставлять приложение работать. Записи данных входят в / Мои Документы так только, файлы установки (EXE, и т.д.) входят в C:\Program Files (или C:\Program Files (x86)).
Фиксация к их проблеме должна запустить приложение, даже при том, что это кажется подвешенным, затем покажите диспетчер задач, просмотрите процессы, щелкните правой кнопкой по процессу моего приложения и снимите флажок с Виртуализацией контроля учётных записей. Затем я сделал, чтобы они восстановили установку, и все в порядке.
Почему мой процесс подвергает Виртуализации контроля учётных записей и как я препятствую тому, чтобы это произошло? Я также использую Профессионала InstallShield 2010 для создания установки, я не уверен, связана ли она с установщиком или самим приложением.
Чтобы предотвратить виртуализацию, добавьте манифест к приложению. Независимо от того, укажете ли вы asInvoker или requireAdministrator, вы больше не получите виртуализации. Я предполагаю, что asInvoker будет лучше для вас, поскольку приложение отлично работает без повышения уровня.
Вы можете просто поместить foo.exe.manifest в ту же папку, что и exe, или встроить его, что имеет некоторые хитрости, например, сделать манифест длиной кратной 4 байтам. В этом вопросе рассматриваются некоторые подробности встраивания.