Как запросить выход из приложения, если для ClickOnce установлено "приложение с частичным доверием"?
Если консольное приложение.NET встроено в VisualStudio с настройками проекта Security
> Enable ClickOnce security settings
> This is a partial trust application
, следующие способы выхода из приложения бросить SecurityException
из-за недостаточных привилегий, потому что они не могут получить доступ к системной среде:
Environment.Exit()
Environment.FailFast()
End
заявление (Visual Basic)
Как выйти из приложения, не сталкиваясь с этим исключением?
Больше деталей:
Сообщение об исключении: Message=Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
,
Это совершенно нормально, так как они, очевидно, хотят вернуть ErrorLevel
, но системная среда в это время недоступна. Но знаете ли вы о каком-либо способе преждевременного выхода из приложения, которое не пытается получить доступ к среде и, таким образом, может выйти без вызова исключения?
Единственный способ работы, который я нашел, - это продолжить выполнение до конца Main()
где приложение выходит "естественно". Но это иногда добавляет нежелательные конструкции кода. Вот почему я спрашиваю, как выйти немедленно.
Пожалуйста, в этом случае давайте не будем заканчивать, добавляя права доступа к приложению и т. Д. Давайте оставим приложение ограниченным как есть и найдем способ его выхода. Предлагает ли.NET какой-либо другой способ мгновенного выхода из приложения, кроме трех вышеперечисленных?
1 ответ
Ты пробовал
Process.GetCurrentProcess().Kill()
или же
AppDomain.Unload(AppDomain.CurrentDomain)
?