0

ゲームの最初のエラーログを作成しようとしましたが、いくつかの問題が発生しました。まず、次のコマンドを使用してテキストファイルを作成しようとします。

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

ただし、ゲームをインストールした後、Setup.exeを介してのみゲームを実行できます。これは、管理者権限を割り当てることができる唯一の実行可能ファイルであり、ゲームのショートカットにはそのオプションがないためです。他の場所からゲームを実行しようとすると、「プログラムが応答しなくなりました」というメッセージが表示されます。

2番目の問題は、必要な場所にテキストファイルを作成することです。ゲームがインストールされた場所に、「c:\ Program Files(x86)\MyGame」というテキストファイルを作成します。私はいくつかの異なる方法を使用してみました:

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

しかし、それらはすべて私のローカルAppDataに巨大なパスを返します。これが違いを生むかどうかはわかりませんが、これはクリックワンスアプリケーションです。

助けてくれてありがとう。

4

2 に答える 2

1

これは、ClickOnce アプリケーションが、それらをインストールしたユーザーのプロファイルの下にインストールされるためです。

ApplicationDeployment.CurrentDeployment.DataDirectoryおそらくあなたが探しているもの、またはそれ以上のものを使用できます:

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 に答える