Игра, опубликованная на 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. Я не знаю, если это имеет значение, но это с одним щелчком мыши приложения.
Спасибо заранее за любую помощь.
2 ответа
Это связано с тем, что приложения ClickOnce устанавливаются под профилем пользователя, который их установил.
Ты можешь использовать ApplicationDeployment.CurrentDeployment.DataDirectory
что, вероятно, то, что вы ищете, или даже лучше:
private string GetDataDirectory()
{
if (ApplicationDeployment.IsNetworkDeployed)
return ApplicationDeployment.CurrentDeployment.DataDirectory;
else
return Application.StartupPath;
}