2017-11-29 6 views
0

私は奇妙な問題があります。Process.Start()の既知の問題?

Process.Start(Path); 

プログラムにバグが表示されます(インターフェイス(ボタンなど)が完全に更新されない場合があります)。

私がプログラムを直接起動すると(で指定されたものと同じ.exe)、バグは発生しません。

プログラムには起動引数などは必要ありません。

アイデア?この方法でプログラムを実行するとき、これは既知の問題ですか?

+9

処理を開始するときに正しい作業フォルダを指定しましたか? – Sefe

+0

どういう意味ですか?私はこれを次のように実行します:Process.Start(@ "C:\ Install \ dir \ program.exe"); 他のすべてが動作していますが、インターフェイスを更新するだけで動作しません。 –

+4

Process.Startは何百万という開発者によってテストされています。それほど明白なバグがあった場合は、文書化されていておそらく今修正されているとは思わないでしょうか? .NETのようにコードを扱う場合、最初の傾向は、フレームワークが壊れているのではなく、何か間違っていると仮定することです。 – mason

答えて

3

アプリケーションからUI要素が欠落している場合、一般に、カスタムUIフレームワークを使用するアプリケーションであり、実行可能ファイルの横にDLLとして配置されます。

実行可能ファイルをダブルクリックすると、「作業ディレクトリ」は起動元のディレクトリに設定されます。

Process.Start(string path)を呼び出すと、作業ディレクトリはアプリケーションのディレクトリ(またはあなたまたはランタイムに設定されているディレクトリ)に設定されたままになります。

その場合、アプリケーションはそのUIフレームワークを構成するDLLを見つけることができず、UIは空のまま残ります。

コードから開始するアプリケーションに作業ディレクトリを提供するには、.NET Process.Start default directory?を参照してください。

+0

コメントからリバースエンジニアリングを行いました。 – CodeCaster

関連する問題