0

我一直在尝试为我的游戏创建我的第一个错误日志,但遇到了一些问题。首先,我尝试使用以下命令创建一个文本文件:

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

但是我只能在安装游戏后通过 Setup.exe 运行游戏,因为它是我可以分配管理员权限的唯一可执行文件,游戏快捷方式没有该选项。每当我尝试从其他地方运行游戏时,我都会得到“程序已停止响应”。

我的第二个问题是在我想要的位置创建文本文件,我想在安装游戏的位置创建它,即“c:\Program Files (x86)\MyGame”。我尝试过使用几种不同的方法:

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

但是它们都在我本地的 AppData 中返回了一条巨大的路径。我不知道这是否会有所不同,但这是单击一次应用程序。

预先感谢您的任何帮助。

4

2 回答 2

1

This is because ClickOnce applications are installed under the profile of the user who installed them.

You can use ApplicationDeployment.CurrentDeployment.DataDirectory which is probably what you're looking for, or even better:

private string GetDataDirectory()
{
    if (ApplicationDeployment.IsNetworkDeployed)
        return ApplicationDeployment.CurrentDeployment.DataDirectory;
    else
        return Application.StartupPath;
}
于 2012-04-23T09:18:51.430 回答
0

怎么样Directory.GetCurrentDirectory()

于 2012-04-23T09:10:30.463 回答