2016-06-28 67 views
0

我有2個應用程序。示例App1和App2 當正常運行時,App1將顯示程序集可執行文件的位置。 但是當我從App2調用App1時,它將返回App2啓動位置。c#獲得程序集可執行文件目錄

那麼,如何從App2調用App1時獲得App1啓動路徑?

+2

歡迎來到StackOverflow!請顯示您嘗試過的內容並澄清您想要的內容:「啓動路徑」還是「組裝位置」? –

+0

我得到啓動路徑= Application.StartupPath。 當我運行App1正常的路徑返回真正的位置。但是當我從App2調用App1時,它將返回App2位置。那麼當我從App2調用App1時,如何讓App1啓動路徑? – TrungNV

+0

所以當然是一樣的。 StartupPath不是程序集的路徑,而是應用程序從其開始的工作目錄。所以如果你的App2不改變它的工作目錄,那麼App1具有相同的startuppath。 –

回答

2

你可以利用這個得到當前執行的程序集的目錄:

string assemblyPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); 

GetExecutingAssembly()返回當前執行的程序集和Location是完整路徑或組裝的UNC路徑。

Path.GetDirectoryName()返回完整路徑的目錄。


請注意,程序集的路徑與啓動路徑不同。啓動路徑是您啓動應用程序的工作目錄。如果你的應用不改變它的工作目錄,那麼第一個應用啓動的所有應用將具有相同的啓動路徑。

+0

無法通過 string assemblyPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly()。Location); 它返回App2的啓動路徑。 – TrungNV

相關問題