C# XNA 发布的游戏无法运行并获取安装位置



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

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

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

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

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

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

提前感谢您的任何帮助。

这是因为 ClickOnce 应用程序安装在安装它们的用户的配置文件下。

您可以使用您可能正在寻找的ApplicationDeployment.CurrentDeployment.DataDirectory,甚至更好:

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

Directory.GetCurrentDirectory()呢?

最新更新