私が開発したプラットフォーム用の外部アップデータアプリケーションを起動しようとしています。このアップデータを起動したいのは、プラットフォームのアップデートとライセンス設定を処理する私の設定ユーティリティが、アップデートが配備されるフォルダ内の他のアセンブリと依存関係を共有しているからです。ですから、私が設定ユーティリティの名前を変更してアップデートをデプロイするときに上書きすることはできますが、依存するDLLの名前を変更したり上書きすることはできません。したがって、外部アップデータアプリケーション。親プロセスよりも寿命の長いプロセスを作成する方法
構成ユーティリティですべての更新収集ロジックを処理してから、実際のファイルコピー/上書き操作を処理するためにアップデータを起動しようとしています。明らかに、使用中のファイルの問題のため、アップデーターの開始直後に設定ユーティリティーを終了する必要があります。
私が抱えている問題は、標準のProcess.Startメソッドを使用してアップデータを起動していて、設定ユーティリティが終了するとすぐにアップデータプロセスも強制終了されるということです。
親プロセスよりも寿命の長いプロセスを作成する方法や、起動したプログラムを超えて実行できる外部アプリケーションを起動する方法はありますか?
EDIT:
はどうやら、私のアップデータアプリケーションでは、私はそれに渡されるコマンドライン引数の数を誤算しました。このため、アップデータはすぐに終了します。私はこれを誤解して、ランチャーアプリケーションが「子供」プロセスを殺していたということを誤解しました。実際、そうではありませんでした。
以下の回答が正しいです。
私はそれが逆説的なものだと知っていますが、構成ユーティリティとアプリケーションの両方を起動することが全体の仕事であるというプロセスを持つことができますか?そうすれば、アプリケーションと設定ユーティリティの両方を個別に更新することができます(必要に応じて)。親プロセスが親プロセスで実行されることを心配する必要はありません。 –
アップデータコードにバグがあり、すぐに終了するようになりました。私は、これを閉じている "起動"プロセスからのものであると仮定しました。私はそれに応じて私のメッセージを更新しました。そんなばかげた間違いをするための自己処罰として自分自身を否定的な担当者にする方法はありますか? –
C#/ Mono/* nixではなく、C#/ .net/Win32を使用していると仮定できますか?プロセスがすべての環境で同じように機能するかどうかはわかりません。 – quillbreaker