2013-03-28 82 views
3

我想知道如何安裝Windows generate folder,其中將安裝ClickOnce applicationC#ClickOnce安裝文件夾 - Windows如何生成文件夾名稱

在開始菜單的 「捷徑」 的文件,什麼是在推杆像一些 「星際迷航」 的文件夾:

C:\ Users \用戶名\ AppData \本地\ APPS \ 2.0 \ GT ?? 4KXX。 PRJ \ EGV ??? 1G.??C\prin..tion_7???5a2?????74b6_0000.0002_1dae????89111c35

是什麼這些文件夾的名稱是什麼意思?


例如:

如果我將不得不例如有些settings.txt文件,其中我想,用戶可以更改應用程序的一些參數。有沒有辦法如何知道,它將被安裝在哪裏和文件是? (用戶可以在這裏找到這個settings.txt文件)。

我知道我可以在C:\中創建文件,並且在啓動應用程序後,我將修改「強」路徑中的文件。但我真的不喜歡太多的文件,文件夾,無論在C:\,我更喜歡在應用程序相同的文件夾中有設置文件。但是使用ClickOnce安裝程序確實很難 - 不可能 - 找到該文件。

這似乎是什麼時候,「startrek」就像項目的散列。


所以我想知道該文件夾是什麼意思,如果它的一些哈希項目或是什麼。

+0

也許你不應該在設置文件中使用完全限定的路徑。在應用程序文件夾中使用相對文件引用 – Brad

+0

這個問題是我需要完全合格的路徑..我需要它只是爲了某些人的信息什麼不懂電腦,我需要說他們「這是這個文件..OPEN IT和修改它「..它沒有問題,我需要在我的應用程序中使用該文件(在那裏我使用相對裁判)..但我解決它與應用程序設置,它不是最好的解決方案,但它至少比沒有更好。 – piggy

回答

5

要找到包含可執行文件的文件夾,可以使用Assembly.Location屬性。

例如:

string exeFolder = System.Reflection.Assembly.GetExecutingAssembly().Location; 

但是,如果要存儲設置您的ClickOnce應用程序,你不應該寫一個文件中的.exe的文件夾中做到這一點。

相反,您應該使用Microsoft's Application Settings support。做任何其他方式都會帶來很多額外的麻煩,而且微軟的支持非常好。它需要半個小時來閱讀文檔,但它是遙不可及的最好的事情,恕我直言。(假設你只需要將設置存儲在本地PC上供以後使用的同一用戶使用;如果你想讓設置跟隨用戶(即漫遊設置)),則不能使用Microsoft支持。)

如果您想要將更復雜的設置存儲在您直接創建的文件中,則應考慮使用JRoughan提供的答案的隔離存儲。

+0

好吧,我解決與應用程序的設置。設置是相同的,當應用程序更新,所以它最好的我可以做的,另一個用戶將訪問它..「我不在乎」; D(我沒有另一種可能性):] thnks – piggy

+0

我想你可以選擇 - 在設置通過設置基礎 - 是爲所有用戶還是爲當前用戶存儲該設置。有一個內置的設置編輯器,你可以在我想的地方選擇它。 –

4

從ClickOnce的內部應用程序,你可以在其中找到文件正在使用

ApplicationDeployment.CurrentDeployment.DataDirectory 

存儲在默認目錄或者你可以使用isolated storage,並選擇是否要每個應用程序或每個用戶保存。

我不認爲有可能從應用程序本身之外確定這些文件夾。如果你需要一個已知的位置,你必須對它進行硬編碼。

更新

我也不相信這是可能推斷出安裝目錄將是怎樣的應用程序。即使可能,應用程序的更新也不明智,因爲應用程序的更新將不在同一個位置。

+0

非常感謝你,我會看看孤立的存儲,這將是有益的。 DataDirectory是不正確的方式對我來說,因爲我需要設置例如settings.txt manualy(因此「問」:)).. Programmaticaly這對我來說並不複雜,但我怎麼說,我需要設置文件manualy所以我需要知道應用程序的路徑..謝謝你..要更新:是的,如果它的更新,文件夾是不一樣的,那第二個問題:D – piggy

1

如果您的數據是用戶通過程序修改的,那麼如果不將它保留在ClickOnce程序目錄中,您將會更高興。有更新時可以完全搞砸了。請查看this article瞭解如何處理您的數據以確保其安全並能夠找到它。它討論把它放在LocalApplicationData中,但如果你希望你的用戶能夠找到並編輯它,只需把它放在MyDocuments/yourappname/settings或類似的東西。

我不會使用獨立存儲;有報道與ClickOnce的問題。