Как запросить выход из приложения, если для 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)

?

Другие вопросы по тегам