2011-10-02 18 views
0

我正在嘗試爲某些shell操作註冊我的可執行文件,並且需要找出當前可執行文件的路徑。我發現了幾個問題(和答案),這裏SO,找到了以下選項:可執行文件路徑的幾種選擇,但只有一種可以在Visual Studio中運行?

  • Environment.GetCommandLineArgs()[0]
  • System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
  • typeof(Program).Assembly.Location

但是Visual Studio 2010的前兩回的內部調試時vshost exe名稱,例如...bin\Debug\ExportVSProject.vshost.exe。我想我明白爲什麼。通過反覆試驗,我發現最後一個在VS和外部提供了正確的名稱。

我的問題是,是否有任何缺點使用Assembly.Location?我問的原因是我沒有看到任何比較,在其他答案中選擇一個。

回答

0

這很好。更通用的解決方案是Assembly.GetEntryAssembly()。位置,可在任何地方使用。

+0

謝謝,我喜歡你的更好,因爲下次我剪切和粘貼我不需要改變類型名稱,這是我的解決方案中的一個問題:) –

相關問題