2011-12-13 19 views
0

I持っ共有オフィスアドインそれは次のコードを使用してファイルを削除するために別のプロセスを使用しています:それは同じディレクトリにあるにもかかわらず、これは、ランダムにプロセスを見つけることができないように思わOfficeアドインからプロセスを呼び出していますか?

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

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

アイデア?

+0

ランダムに言うと、時には 'Process.Start'が動作するか、動作しないことを意味しますか? – SliverNinja

+0

はい、ときどき動作し、時にはエラーをスローし、exeを見つけることができません –

+0

['AppDomain.CurrentDomain.BaseDirectory'](http://msdn.microsoft.com/en-us/library/system.appdomain。 – SliverNinja

答えて

1

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

、Process.Startは、完全修飾パスを提供しなければなりません。

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

+0

完全修飾パスを使用せずにPATHフォルダ内のprocessを呼び出すことができます。 –

+0

これを試してください、ありがとう –

関連する問題