2009-11-25 3 views
1

Я пытаюсь создать приложение автоматизации в экспресс-редакторе C# 2005 под Windows Vista. Проблема в том, что всякий раз, когда я пытаюсь запустить это приложение, либо из IDE, либо непосредственно скомпилированного исполняемого файла под Vista, он запрашивает повышенные привилегии администратора, но такие же исполняемые прогоны под XP обычно!Консольное приложение C# 2005 всегда требует повышенных привилегий

Я не могу понять, если эта проблема из-за манифеста или что-то еще ...

Спасибо,

+0

Просто ответьте на вопросы, заданные всеми остальными. Windows XP не имеет UAC, поэтому пользователи обычно имеют привилегии администратора, поэтому проблем не будет. Это самая большая проблема, с которой люди сталкиваются с UAC в Vista - это просто плохо разработанное программное обеспечение (программное обеспечение, которое выдает UAC, когда оно не должно/не должно быть необходимым), которое из-за этого отлично работало под XP. –

ответ

3

Во-первых, я бы update to 2008 Express; 2005 Express больше не доступен для загрузки, но 2008 Express по-прежнему может ориентироваться на .NET 2.0, в дополнение к предоставлению вам 3.0/3.5 доброты. И он по-прежнему свободен. На самом деле, 2010 Express не за горами! В частности, вам будет все труднее найти людей, которые могут ответить на вопросы о выпуске Office Express , просто потому, что у немногих людей установлен 2005 Express.


Добавить файл манифеста приложения (через IDE) - он появится как app.manifest; он должен добавить (по умолчанию):

<requestedExecutionLevel level="asInvoker" uiAccess="false" /> 

Который должен (IIRC) помощь - но: где приложение работает с и б: что он делает? (он пытается редактировать реестр и т. д.).

+0

Спасибо Marc за ответ, но я попробовал это решение, прежде чем публиковать его здесь, но это не решило мою проблему. :( – DexTer

3

Дополнительно к ответу Марка: Если исполняемый файл имеет i.e 'setup' или 'install' как часть его имени, UAC запрашивает права администратора независимо от манифеста. Единственная работа вокруг этого - переименовать .exe в нечто, не содержащее эти ключевые слова.

Редактировать: «Обновить» также является ключевым словом. См. Также этот Technet article о UAC.

+2

Интересно, не знал, что. Из любопытства, хотя у вас есть источник этой информации? – RCIX

+0

Описывается в технике: http://technet.microsoft.com/en-us/library/cc709628 (WS.10) .aspx Также «обновление» - это ключевое слово. –

0

Если ваше приложение пытается выполнить действия, требующие повышенных привилегий (например, писать в папку Program Files или в некоторых областях реестра), ему нужно будет запросить возвышение или он не удастся. В XP он не будет требовать возвышения вообще; он просто потерпит неудачу, если у него нет разрешений, необходимых для его запуска (но обычно люди запускаются с правами администратора в XP, поэтому это не часто бывает проблемой)

Чтобы добавить один «полученный» в существующий ответы: Если вы используете свойства файла (вкладка Compatibility) в своем .exe, чтобы заставить его «запускаться как администратор», он всегда будет запрашивать возвышение при его запуске. Unintuitively, это применяется постоянно к пути , поэтому даже если вы удалите файл .exe и установите новый, параметр «как admin» будет применяться по-прежнему! Вы должны специально открыть свойства и отключить это свойство, чтобы удалить его снова.