Имейте в виду, что независимо от сценария причина всегда одинакова в .NET:
Вы пытаетесь использовать ссылочную переменную, значение которой
Nothing
/null
. Если для ссылочной переменной значениеNothing
/null
, это означает, что на самом деле оно не содержит ссылку на экземпляр любого объекта, который существует в куче.Вы либо никогда не присваивали какую-либо переменную, никогда не создавали экземпляр значения, присвоенного переменной, или вы вручную устанавливали переменную, равную
blockquote>Nothing
/null
, или вы вызывали функцию, которая установите для этой переменной значениеNothing
/null
.
Вам нужен манифест приложения, требующий повышенных привилегий. Вот цитата из блога, которая отвечает на это:
Во-первых, вы можете создать файл манифеста, добавив в проект пункт «Файл манифеста приложения» (имя по умолчанию: app.manifest), затем вы можете установить его через вкладку «Приложение» в «Свойства проекта». Если вы хотите изменить уровень управления учетными записями пользователей Windows в своем файле манифеста, все, что вам нужно, - установить значение атрибута уровня узла requestExecutionLevel одним из следующих:
blockquote>
- asInvoker ( по умолчанию): приложение будет запускаться с использованием текущих пользовательских прокси-серверов Windows
- requireAdministrator: для приложения требуется пользователь Administrator
- maximumAvailable: будут использоваться самые высокие привилегии для текущего пользователя
http://dariosantarelli.wordpress.com/2007/11/21/vs2008-embedding-uac-manifest-options/