4

SQL Server 2008 R2、.NET Framework 3.5、.NET Framework 4 などのカスタム ブートストラップがあります。Visual STudio 2010 の展開プロジェクトを使用して、.NET 4 アプリケーションを展開しています。私はこれらがなくなることを知っています。

ユーザーが特定の Windows 特権を持っていない場合に、ブートストラップを失敗するように指定する方法はありますか? SQL Server のセットアップは、これを独自に処理しているように見えますが、ユーザーが追跡するのが難しい非常に不可解なエラー コードとテキストを提供します。Windows バージョンのバイパスを設定できること、および SqlCheck.exe が何らかのバージョン チェックを実行することはわかっています。ユーザーのアクセス許可をチェックする独自のアプリケーションを作成する必要がありますか? SqlCheck.exe と同様に、ブートストラップはそのリターン コードをチェックできますか?

これは Bootstrapper Manifest Generator を使用して実現できますか? また、BMG は Visual Studio 2010 でもサポートされていますか? もうサポートされていないようですが、VS 2010 / Windows Installer 4.5 に固有のものがあるかどうかはわかりません http://archive.msdn.microsoft.com/bmg

4

1 に答える 1

0

標準の Visual Studio ブートストラップでできることのほとんどは、AdminUserプロパティの値を確認することです。定義済みの .NET Framework 4.0 クライアント プロファイルの前提条件では、同様の条件が使用されます。そのマニフェストは次のフォルダーにあります。

C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX40Client

これは、ブートストラップ マニフェスト ジェネレーターでもサポートされている必要があります。

しかし、これは大きな問題です。新しい Windows バージョンでは、昇格によってすべてのユーザーが管理者権限を取得できます。そのため、インストーラーの観点からは、管理者でなくても、すべてのユーザーが管理者と見なされます。

したがって、このアプローチは Vista 以降ではほとんど役に立ちません。

前提条件を処理し、ユーザー権限をチェックする独自のカスタム EXE ブートストラップを作成してみることができます。しかし、おそらく同じ問題に遭遇するでしょう。

私の経験から、最善のアプローチは、必要に応じて各インストーラーを昇格させることです。それらのほとんど、特に Microsoft のものには、このためのメカニズムが組み込まれています。

このアプローチで問題が発生した場合、特権が原因ではないことは確かです。ほとんどの場合、前提条件が正しく構成されていません (コマンド ラインが正しくないなど)。

于 2011-10-25T18:02:56.267 に答える