2011-03-22 28 views
1

我使用Powershell作爲控制檯。我創建了PSSnapin並將其添加到Powershell。現在我想爲一些異常,它應該退出那裏,但因爲我已經從一些函數調用它,它返回那裏,我不想要的。我只想在不關閉PowerShell控制檯的情況下在該時刻退出。我嘗試了Environment.Exit(0),但它正在關閉控制檯應用程序。還有其他方法可以退出嗎?如何從c#中的函數退出而不關閉PowerShell

+0

如果你在你的snapin實例上調用Dispose,會發生什麼? – Gabe 2011-03-22 05:47:00

回答

2

Snapins在PowerShell進程中運行,因此PowerShell通過捕獲管理單元拋出的異常來嘗試保護自己。你想要做的最後一件事情是調用Environment.Exit(),因爲這會殺死PowerShell進程。您可以讓異常從您的cmdlet實現中退出(或者在必要時拋出),但最好在您的PSCmdlet實例上使用ThrowTerminatingError()方法來指示您的cmdlet的終止條件。