2012-03-13 49 views
0

我開發了一個桌面系統,需要部署。我的路徑已經完整。見下面的例子。我擔心,當我部署我的系統時,它不會在其計算機上運行,​​因爲它們沒有D驅動器或MY_THESIS文件夾。幫幫我?如何正確編寫可移植文件的文件路徑?

System.Diagnostics.Process.Start(@"D:\MY_THESIS\WORKING FILES\WindowsFormsApplication2\WindowsFormsApplication2\User Manual\User Guide Outline.pdf"); 

回答

0

假設你的exe文件在同一目錄訪問PDF格式,只需使用:

string path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); 

path = System.IO.Path.Combine(path, "User Guide Outline.pdf"); 
System.Diagnostics.Process.Start(path); 
+0

感謝史蒂夫的快速反應!我的PDF在**用戶手冊**文件夾下,而exe文件在** obj> Debug **下 – Ritzel 2012-03-13 12:43:04

+1

考慮將您的EXE和PDF部署到同一個目錄中。典型的部署方案將EXE,依賴的DLL和所有支持文件放在單個目錄或其子目錄中。 – 2012-03-13 12:45:51

+0

謝謝!這工作完美! :) – Ritzel 2012-03-13 12:54:14

2

最好的做法是寫在一個你肯定會存在的目錄中,比如我的文檔。

這個片段,您可以訪問這個目錄:

Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

SpecialFolder枚舉,您可以訪問其他常用的目錄。

否則,如果你是誰選擇在PDF格式將是地方的一個,你總是可以把應用程序目錄的PDF和使用Assembly.GetExecutingAssembly().LocationSystem.IO.Path.GetDirectoryName(Application.ExecutablePath)

+0

爲什麼要將應用程序部署到「我的文檔」...? =) – gdoron 2012-03-13 12:41:04

+0

我需要便攜式文件的文件路徑,因爲我將用戶手冊和數據庫與整個源代碼和exe一起放入CD。我認爲這不會起作用。 – Ritzel 2012-03-13 12:45:19

+0

哦,我明白了..所以基本上你有一個項目A(命名它),現在該項目有源代碼/數據庫/用戶手冊這是在PDF格式。 是這樣嗎? – MDMalik 2012-03-13 13:09:09

0

使用app.config文件 有

connectionStrings> 
    <add name="File Path" connectionString="D:\MY_THESIS\WORKING FILES\WindowsFormsApplication2\WindowsFormsApplication2\User Manual\User Guide Outline.pdf" 
      /> 
</connectionStrings> 

現在,只要在該機器上部署,就可以獲得文件所在路徑的連接字符串xml文件。這樣你才能得到那個文件。如果您沒有在項目中部署。

+0

嗨,是的,我沒有與該項目部署,這就是爲什麼我需要一個路徑,將能夠讀取文件該目錄與它所在的驅動器無關。該exe文件將被放置在CD中。 – Ritzel 2012-03-13 12:47:57

+0

你打算如何從CD運行exe。我知道這樣做,但會直接點擊exe文件,而無需安裝或任何東西。? – MDMalik 2012-03-13 12:59:33