3

Visual Studio セットアップ プロジェクトは、ニーズに合わせて十分にカスタマイズできないため、カスタム インストーラー アプリケーションを開発しました。.NET フレームワーク、SQL Server などの前提条件用のバリデーターとインストーラーを開発しましたが、Process.Start を使用して .NET フレームワークの実行可能ファイルのような一部の実行可能ファイルを開始できません。

前提条件用のカスタムバリデーターとインストーラーがあるかどうか、または自分で開発するのとは異なる前提条件のインストールと検証を行う方法があるかどうかを知りたいです:)。

前もって感謝します。
パウロ

4

2 に答える 2

0

http://nsis.sourceforge.net/Main_Pageをご覧になることを強くお勧めします。これはオープン ソースのインストール ツールであり、まさにあなたが探しているタスクに使用しており、重要なコミュニティがあります。

于 2010-10-29T18:20:19.250 に答える
0

Process.Start() が機能しないのはなぜですか? その知識がないので、.NET インストーラーを起動しようとしたときに遭遇した状況について説明することしかできません。

管理者権限を要求する UAC ダイアログが表示されている場合、ユーザーにクリックを要求することを避ける方法はありません。プロのサードパーティ ソリューションを含む昇格されていないインストール プロセスでは、.NET インストーラーを起動しようとすると、UAC ダイアログが表示されます。これは、.NET インストーラーを実行するには昇格した管理者トークンが必要なためです。あなたはそれを回避することはできません。

私が遭遇したのは、バックグラウンドの UAC ダイアログの処理でした。それは静かに点滅し、おそらくインストーラーがフリーズしたと思って完全にあきらめたユーザーによって見落とされます. この問題に 2 週間を費やしました。これは、インストーラーが起動してから UAC ダイアログが表示されるまでの間に、ユーザーがインストーラー ウィンドウの外側をクリックした場合にのみ発生しました。そうすることで、Windows はユーザーが別の作業をしたいと考え、ユーザーがクリックしたウィンドウをアクティブに保ちます。Windows は「フォーカス スチール」を禁止するように設計されているため、ウィンドウ (つまり、プロセスが開始した UAC ダイアログ) のフォーカスを「グラブ」する公式の方法はありません。

ユーザーがクリックしたウィンドウはあなたが所有していないと想定しても安全です。そのため、Windows の公式の方法 (フォーカスのあるウィンドウにプロセスへのアクセス許可を与えてフォーカスを取得する) は、この状況では機能しません。これは、msiexec.exe がそのウィンドウをトップレベルに保つ機能を持っていれば良いところです。

したがって、この時点で、私が遭遇したものに遭遇している場合、私が認識している単純で Microsoft がサポートする解決策はありません。

しかし、おそらくあなたは何か他のものに出くわしていますか?繰り返しになりますが、より良い回答を提供できるように、質問を更新して詳細をお知らせください。

別のユーザーが提案したように、ターゲット IDE がどれほど優れていても、インストール IDE を変更することは大きな一歩です。また、MSI ファイルの開発に Visual Studio を使用することはお勧めできませんが、やりたいことを実行する際に引き続き問題が発生する場合にのみ、別の IDE に移行することを検討します。ただし、ここまでは、解決すべきローカライズされた問題と、別のツールを使用しても解決できない可能性のある問題についてのみ説明しました。

于 2014-05-18T00:32:07.257 に答える