2013-06-25 55 views
14

我在Visual Studio 2010中有一個C#項目,我希望使用特定的環境變量來運行/調試我的應用程序。在Visual Studio 2010 C#項目中設置調試/運行環境變量?

這讓我覺得這個功能可能存在於某處,但我無法找到它,儘管進行了大量搜索。 This question涉及2008年及以下,不包含幫助我的答案。 This question涉及構建過程,而不是調試/運行的行爲。

我很欣賞解決方法是啓動我的IDE環境變量,但我寧願從IDE控制它。這可能嗎?

+0

如果我明白:你想在IDE中管理一個環境變量,並在運行時傳遞給你的應用程序? – michele

+0

@michele我想開始一個調試會話並指定一個環境變量,這個變量將被提供給我的應用程序。在Eclipse中,使用「運行配置」可以輕鬆實現。 –

+0

你有沒有試過使用配置文件? – michele

回答

5

這在C++ IDE中是可行的,而不是C#IDE。我猜想它被故意省略是因爲C#有更好的方法來配置一個程序。環境變量很笨拙,因爲它們需要一個在部署應用程序時與用戶的系統環境聯繫起來的安裝程序。這很脆弱,另一名安裝人員很容易破壞,他們經常這樣做。

C#的方式是使用應用程序設置。項目+屬性,設置選項卡。

一種可能的選擇是使用命令行參數。您將在Main()方法中獲取它,您可以在Project + Properties,Debug選項卡中指定一個值。

你仍然可以得到你想要與需要使用C++ IDE開始你的程序的招什麼:

  • 添加一個新的項目,以您的解決方案,並選擇Visual C++,通用,Makefile的項目模板。
  • 點擊「完成」,嚮導會問很多問題。
  • 右鍵單擊添加的項目Properties,選擇NMake節點。
  • 編輯「Build Command Line」設置,並將其設置爲「echo Done」。
  • 編輯「輸出」設置,將其設置爲C#可執行文件的完整路徑。
  • 選擇調試節點,將調試器類型更改爲僅管理。
  • 然後你會看到下面那個,你想要的,編輯「環境」設置。
  • 再次右鍵單擊項目,選擇「設爲啓動項目」。
+4

使用環境變量不一定需要安裝人員修改用戶的系​​統環境。環境變量的範圍是每個進程,通常從系統繼承,但並非總是如此。這就是爲什麼'ProcessStartInfo.EnvironmentVariables'存在。在多進程應用程序中,當命令行參數API無法修改或使用時,它們是爲程序提供啓動配置的替代方法。 IMO忽略C#調試器的這個設置是一個錯誤。 – nicholas

+0

這是有用的另一種情況是,當你正在開發一個應用程序,該應用程序將由通過環境變量將信息傳遞給你的程序的第三方託管。環境變量仍然存在,並且具有很多用途。忽略它們確實是一個錯誤。 –

8

這不是從應用程序之外設置它正在調試乾淨,但您可以添加到Main這樣的事情(注:我是一個VB程序員):

#if (DEBUG) 
    Environment.SetEnvironmentVariable("YourVar", "YourVal"); 
#endif 
2

對於C#調試使用Visual Studio 2013下的環境變量,我所做的是在Visual Studio下的開始菜單中打開「VS2013的開發人員命令提示符」。在命令提示符下,我設置了我想要的環境變量,然後運行「devenv.exe」來啓動Studio。接下來打開解決方案並開始調試。

請記住,如果您想更改環境變量,則需要停止調試,退出visual studio,然後在打開的命令提示符下調整變量,然後重新開始。請記住,當進程(CMD.EXE)啓動下一個(DEVENV.EXE),然後是下一個(YourApp)時,環境會前進。一開始的變化不會向前推進,您需要開始鏈條。

+0

我發現這是比接受的答案更簡單和更有效的解決方案(對我來說,無論如何) –

相關問題