2012-04-23 53 views
0

我一直在嘗試爲我的遊戲創建我的第一個錯誤日誌,並且遇到了一些問題。首先,我嘗試使用,以創建一個文本文件:C#XNA發佈的遊戲無法運行並獲取安裝位置

errorLog = new StreamWriter("c:\\ErrorLog.txt", true); 

但是我只能運行通過的Setup.exe安裝遊戲的比賽結束後,因爲它是我可以分配管理權限的唯一可執行文件時,遊戲快捷方式沒有這個選項。每當我嘗試從其他地方運行遊戲時,我只會得到「程序已停止響應」。

我的第二個問題是在我想要的地方創建文本文件,我想在創建它的地方安裝遊戲「c:\ Program Files(x86)\ MyGame」。我試過使用幾種不同的方法:

Environment.GetCommandLineArgs()[0]; 
Path.GetDirectoryName(baseDir); 
Assembly.GetExecutingAssembly().Location; 

但他們都在我的本地AppData中返回一個巨大的路徑。我不知道這是否有所作爲,但這是一次點擊應用程序。

Thankyou提前尋求幫助。

回答

0

Directory.GetCurrentDirectory()怎麼樣?

1

這是因爲ClickOnce應用程序安裝在安裝它們的用戶的配置文件下。

您可以使用ApplicationDeployment.CurrentDeployment.DataDirectory這就是你要找的大概是什麼,甚至更好:

private string GetDataDirectory() 
{ 
    if (ApplicationDeployment.IsNetworkDeployed) 
     return ApplicationDeployment.CurrentDeployment.DataDirectory; 
    else 
     return Application.StartupPath; 
}