我有2個應用程序。示例App1和App2 當正常運行時,App1將顯示程序集可執行文件的位置。 但是當我從App2調用App1時,它將返回App2啓動位置。c#獲得程序集可執行文件目錄
那麼,如何從App2調用App1時獲得App1啓動路徑?
我有2個應用程序。示例App1和App2 當正常運行時,App1將顯示程序集可執行文件的位置。 但是當我從App2調用App1時,它將返回App2啓動位置。c#獲得程序集可執行文件目錄
那麼,如何從App2調用App1時獲得App1啓動路徑?
你可以利用這個得到當前執行的程序集的目錄:
string assemblyPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
GetExecutingAssembly()
返回當前執行的程序集和Location
是完整路徑或組裝的UNC路徑。
Path.GetDirectoryName()
返回完整路徑的目錄。
請注意,程序集的路徑與啓動路徑不同。啓動路徑是您啓動應用程序的工作目錄。如果你的應用不改變它的工作目錄,那麼第一個應用啓動的所有應用將具有相同的啓動路徑。
無法通過 string assemblyPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly()。Location); 它返回App2的啓動路徑。 – TrungNV
歡迎來到StackOverflow!請顯示您嘗試過的內容並澄清您想要的內容:「啓動路徑」還是「組裝位置」? –
我得到啓動路徑= Application.StartupPath。 當我運行App1正常的路徑返回真正的位置。但是當我從App2調用App1時,它將返回App2位置。那麼當我從App2調用App1時,如何讓App1啓動路徑? – TrungNV
所以當然是一樣的。 StartupPath不是程序集的路徑,而是應用程序從其開始的工作目錄。所以如果你的App2不改變它的工作目錄,那麼App1具有相同的startuppath。 –