2014-02-24 131 views
1

問題:當在Visual Studio中使用時,Clickonce將項目的子文件夾放置在不同的位置,並在安裝爲Clickonce應用程序時將其放置在不同的位置。在ClickOnce中動態獲取項目文件夾的路徑

在Visual Studio他們下:

Directory.GetParent(Environment.CurrentDirectory).Parent 

雖然安裝時,他們下:

Environment.CurrentDirectory 

雖然我可以檢查的ClickOnce安裝(如圖一回答爲my question here,「關閉不是一個真正的問題」...)我擔心這可能會在某個時候破裂 - 除非我明白爲什麼發生這種情況。

那麼,什麼是正確獲取文件夾路徑的方式,當在Visual Studio中運行,並作爲Clickonce安裝?

回答

0

如果我理解正確你的問題,嘗試使用Application.StartupPathApplicationDeployment.CurrentDeployment.DataDirectory如下:

string startupPath = ApplicationDeployment.IsNetworkDeployed 
    ? ApplicationDeployment.CurrentDeployment.DataDirectory : 
    : Application.StartupPath; 

或者只是Application.StartupPath

或者只是ApplicationDeployment.CurrentDeployment.DataDirectory

這取決於「Clickonce放置項目子文件夾」的含義

+0

謝謝,我將不得不嘗試這些。至於我的意思,這裏是一個簡單的例子:在我的項目中,我有一個文件夾,「Folder1」。其中有一個文件'Text1.txt',我希望我的應用程序能夠獲取它的路徑,以便它可以讀取它的內容。 – ispiro

+0

如果在部署包中包含此文件夾,則肯定使用'Application.StartupPath'。 – Dmitry

+0

沒有。作爲Clickonce安裝時工作。但不是在VS中執行時。 – ispiro

相關問題