Dot-Net
確定是否在沒有 System.Web 的情況下在 ASP.NET 或 WinForms/console 中執行
從類庫中,我需要在執行時確定我是在 ASP.NET 應用程序中執行,還是在 WinForms/console 應用程序中執行。關於這個主題還有其他幾個 問題,但所有這些解決方案都需要添加對 System.Web 的引用。如果可能的話,在執行我的控制台和 WinForms 應用程序時,我不想將 System.Web 程序集載入到記憶體中,只是為了數千行程式碼中的一行。
採用
System.Diagnostics.Process.GetCurrentProcess().ProcessName如果您正在執行 ASP.NET,則程序集將這樣命名:
- 如果您執行的是 IIS 6.0 或 IIS 7.0,則名稱為 w3wp.exe。
- 如果您執行的是早期版本的 IIS,則名稱為 aspnet_wp.exe。
另一個想法:如何使用 AppDomain.CurrentDomain.GetAssemblies() API 測試程序/應用程序域是否存在 System.Web.dll?