Я создал приложение .NET C # WinForms на Win 7 RTM x64, которое, скажем, я назвал DataInstaller.
Когда я запускаю эту программу вне отладчика (это просто пустая форма, в данный момент не работающая), она работает нормально, пока я не закрою форму. Затем я получаю сообщение от помощника по совместимости программ, в котором говорится:
Эта программа могла быть установлена неправильно
Затем я получаю возможность переустановить с использованием рекомендованных настроек или сказать, что установка прошла должным образом.
Если я назову приложение «DataThingy», это не проблема, я думаю, это связано с тем, как программы с именем * Setup получают значок щита UAC.
Я предполагаю, что будет что-то простое, что я могу добавить в манифест приложения, чтобы предотвратить это?
Я не уверен, что это происходит в Vista, поскольку в настоящее время у меня нет доступа.
Изменить имя нельзя, и отключить UAC нельзя, поэтому, пожалуйста, не предлагайте этого!
Редактировать:
МОЙ БОГ.
Похоже, что если что-либо из следующего верно, UAC вставляет свое весло:
Имя exe содержит слово установщик
AssemblyInfo.cs
AssemblyTitle contains the word 'Installer'
e.g. [assembly: AssemblyTitle("DataInstaller")]
AssemblyProduct contains the word 'Installer'
e.g. [assembly: AssemblyProduct("Data Installation Utility")]
«Установщик» также может быть «Установщиком».
Не верится, это действительно так. Очевидно, один из старых программистов VB6 был переведен в команду UAC в Редмонде.
Мне все еще нужен обходной путь, я не готов признать, что мое приложение не может быть вызвано установщиком, потому что оно не затрагивает реестр и не помещает какие-либо файлы в папку Program Files.
Я предполагаю, что UAC поместит машину в полную блокировку, если я попытаюсь запустить свое приложение под названием IAmAVirus.exe. (На самом деле, я не осмеливаюсь попробовать, потому что не совсем уверен, что я просто глупый)