0

次のコードを使用してファイルを削除する別のプロセスを使用する共有オフィスアドインがあります。

string currentDir = System.Reflection.Assembly.GetExecutingAssembly().Location;
currentDir = Path.GetDirectoryName(currentDir);
Process.Start(Path.Combine(currentDir, "process.exe"), "/d \"" + file + "\"");

アドインと同じディレクトリにあるにもかかわらず、これはランダムにプロセスを見つけることができないようです。ディレクトリをPATH変数に追加する必要はありません。

何か案は?

4

1 に答える 1

1

ディレクトリをPATH変数に追加する必要はありません。

それは役に立ちません。Process.Startには完全修飾パスを指定する必要があります。

インストーラーを更新して、インストールディレクトリをレジストリに書き込むことをお勧めします。キー/値への読み取りアクセスをすべての人に許可するようにしてください。assembly.LocationやAppDomain.CurrentDirectoryを使用すると、別のアプリケーション内から非常に問題が発生する可能性があります。それを避けて、よく知られた価値のあるストレージを使用してください。

于 2011-12-13T18:38:29.077 に答える