┏第55号━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃         .NETプログラミング研究         ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ──<メニュー>─────────────────────── ■.NET Tips ・.NET Framework再頒布可能パッケージの中身を見てみる ・dotnetfx.exeのコマンドラインオプションを調べる ・インストール前に.NET Frameworkをインストールする ─────────────────────────────── ─────────────────────────────── ■.NET Tips ─────────────────────────────── ●.NET Framework再頒布可能パッケージの中身を見てみる これはTipというより、「解剖」という感じでしょうか。 .NET Framework再頒布可能パッケージはVersion 1.0が「 dotnetredist.exe」、1.1が「dotnetfx.exe」というファイル名でマ イクロソフトのサイトからダウンロードできます。 [URL].NET Framework 1.1 再頒布パッケージ http://www.microsoft.com/downloads/details.aspx?FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3&DisplayLang=ja [URL].NET Framework 1.0 再頒布パッケージ ダウンロード http://www.microsoft.com/japan/msdn/netframework/downloads/sdk.asp これらのファイルはCabの自己展開書庫ですので、アーカイバで展開 することができます。実際に展開してみると、次のようなファイルが作成されます。 ・.NET Framework 1.1再頒布可能パッケージ(dotnetfx.exe)を展開 した時に作成されるファイル ファイル名 サイズ(バイト) 製品バージョン install.exe 98,304 1.1.4322.573 InstMsi.exe 1,707,856 2.0.2600.1 InstMsiW.exe 1,821,008 2.0.2600.0 netfx.msi 5,942,272 - netfx1.cab 14,638,532 - ・.NET Framework 1.0再頒布可能パッケージ(dotnetredist.exe)を 展開した時に作成されるファイル ファイル名 サイズ(バイト) 製品バージョン dotnetfx.exe 22,702,664 1.0.3705.15 ・dotnetredist.exe内のdotnetfx.exeを展開した時に作成されるファ イル ファイル名 サイズ(バイト) 製品バージョン install.exe 98,304 1.0.3705.0 InstMsi.exe 1,707,856 2.0.2600.1 InstMsiW.exe 1,821,008 2.0.2600.0 netfx.msi 5,245,952 - netfx1.cab 13,754,653 - この内、InstMsi.exeとInstMsiW.exeはWindows Installer 2.0再頒布 可能パッケージです。よって、dotnetfx.exeにはWindows Installer 2.0再頒布可能パッケージが含まれていることが分かります。(現在 マイクロソフトからダウンロードできるWindows Installer 2.0 Redistributableファイルの製品バージョンは2.0.2600.2ですので、 同じではありません。) [URL]Windows Installer 2.0 Redistributable for Windows NT 4.0 and 2000 http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=4B6140F9-2D36-4977-8FA1-6F8A0F5DCA8F [URL]Windows Installer 2.0 Redistributable for Windows 95, 98, and Me http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=CEBBACD8-C094-4255-B702-DE3BB768148F dotnetfx.exeを実行すると、ファイルを展開し、install.exeを実行 します。install.exeはコンピュータにWindows Installer 2.0以上が インストールされているか調べ、されていなければ、InstMsi.exeま たはInstMsiW.exeにより、Windows Installer 2.0をインストールし ます。その後、netfx.msiを実行して.NET Frameworkをインストール します。 以上から、.NET FrameworkはMSIファイルによりインストールされ、 またdotnetfx.exeとWindows Installer 2.0以前の再頒布可能パッケー ジを同時に配布するのは意味がないということが分かります。 参考: [URL].NET Framework Version 1.1 再配布可能パッケージ テクニカ ル リファレンス http://www.microsoft.com/japan/msdn/library/ja/jpdnnetdev/htm/dotnetfxref1_1.asp ─────────────────────────────── ●dotnetfx.exeのコマンドラインオプションを調べる MSDNの「.NET Framework 1.1 の再配布」によると、Dotnetfx.exeの サイレントインストールは、 dotnetfx.exe /q:a /c:"install /l /q" というコマンドで実行されるとのことです。 [URL].NET Framework 1.1 の再配布 http://www.microsoft.com/japan/msdn/library/ja/jpdnnetdev/htm/redistdeploy1_1.asp このコマンドの意味するところは何なのでしょうか?まず、「 dotnetfx.exe /?」コマンドにより、dotnetfx.exeのコマンドライン オプションを調べてみます。その結果、次のような説明が表示されま した。 /Q パッケージ処理の状況を一部表示しないモード /T:<完全なパス> 一時フォルダを指定 /C /Tと同時に指定した場合に、指定したフォルダのみにファイルを展開 /C: 指定したインストールコマンドを無視 つまり、「/Q」はサイレントモードを指定し、「/T」と「/C」では「 /T」で指定したフォルダにファイルを展開し、「/C:」では展開 後に実行するコマンドを指定(製作者により指定されたインストール コマンドを上書き)できるようです。 しかしこれでは上記の「/q:a /c:"install /l /q"」というコマンド ラインの「/q:a」が何を意味するかは分かりません。実はdotnetfx. exeのコマンドラインオプションはこれだけではありません。 dotnetfx.exeのプロパティを表示すると、「説明」が「IExpress Setup」となっていることが分かります。つまりこのパッケージの作 成には、IExpressが使われているのです。(dotnetredist.exeなどは 「説明」が「Win32 キャビネット自己展開ツール」と表示されますが、 これもIExpressで作成されたことを意味します。)IExpressとは Windows 2000、Windows XPにインストールされているCab書庫を作成 するためのツールで、詳しくは、DOBON.NETの「VBに適したインストー ラを探そう」などをご覧ください。 [URL]VBに適したインストーラを探そう - 5.おまけのアーカイバ選 び http://dobon.net/vb/installer/installer5.html IExpressパッケージに使用できるコマンドラインオプションについて は、サポート技術情報の「IExpress ソフトウェア更新プログラム パ ッケージのコマンド ライン スイッチ」で説明されています。 [URL]IExpress ソフトウェア更新プログラム パッケージのコマンド ライン スイッチ http://support.microsoft.com/kb/197147/ ここで説明されているコマンドラインオプションを以下に引用させて いただきます。 /q 自動インストールを実行します (メッセージを一部表示しません)。 /q:u ユーザー非表示モードで実行します (ユーザーにいくつかのダイア ログ ボックスが表示されます)。 /q:a 管理者非表示モードで実行します (ユーザーにダイアログ ボックス が表示されません)。 /t:path ファイルの展開先フォルダを指定します。 /c インストールを実行せずにファイルの展開のみを行います。/t: path を指定していない場合は、展開先フォルダの入力を求められま す。 /c:path セットアップ .inf ファイルまたは .exe ファイルの UNC パスと名 前を指定します。 /r:n インストール完了後にコンピュータを再起動しません。 /r:i 再起動が必要な場合に、ユーザーにコンピュータの再起動を求める メッセージを表示します (ただし、/q:a を使用している場合は除き ます)。 /r:a インストール完了後にコンピュータを必ず再起動します。 /r:s インストール完了後、ユーザーにメッセージを表示せずにコンピュー タを再起動します。 /n:v バージョン チェックを実行しません。パッケージのインストール時 に以前のバージョンをすべて上書きします。 これでようやくすべての意味が分かりました。「/q:a /c:"install /l /q"」は、管理者非表示モードで実行し、展開後「install /l /q」 というコマンドを実行するという意味だということが分かります。 ところで、「install /l /q」の意味はなんでしょうか?早速「 install /?」でinstall.exeのコマンドラインオプションを調べてみ ました。 /? または /h このダイアログ(使い方ダイアログ) /u アンインストール /l 一時ディレクトリにnetfx.logを作成する これまた「/q」に対する説明に欠けていますが、これに関しては「. NET Framework Version 1.1 再配布可能パッケージ テクニカル リフ ァレンス」で説明されています。 [URL].NET Framework Version 1.1 再配布可能パッケージ テクニカ ル リファレンス http://www.microsoft.com/japan/msdn/net/deployment/dotnetfxref1_1.asp その説明を以下に引用させていただきます。 /l セットアップ ログの netfx.log を %temp% ディレクトリに作成し ます。Dotnetfx.exe から返されるエラー コードは、このログに書き 込まれます。 /q 無人 インストール モードを指定します。セットアップ ユーザー インターフェイスの表示を抑止します。無人 インストールでは、 Dotnetfx.exe の /q:a オプションも指定して、展開ユーザー インターフェイスを抑止する必要があります。 つまり「install /l /q」では、一時フォルダにログを作成し、無人 インストールモードを指定していることが分かります。 これでようやくすっきりしましたね。 補足: .NET FrameworkのLanguage Pack、langpack.exeも「IExpress Setup」 ですが、内蔵されているbootstrapperは「Install.exe」ではなく、 「inst.exe」です。「inst.exe /?」により表示されるオプションの 説明は、次のようなものです。 /? または /h このダイアログ(使い方ダイアログ) /q UIを使用しない無人インストール /qb プログレスバーを使用する無人セットアップ /u アンインストール /l 一時ディレクトリにログを作成する Install.exeとinst.exeは非常に似ているため、Install.exeでも/qb オプションが使えるかもしれません。(未確認) 参考: [URL]Microsoft Windows インストーラ ツール の コマンド ライン スイッチ http://support.microsoft.com/kb/227091/ja ─────────────────────────────── ●インストール前に.NET Frameworkをインストールする .NETアプリケーションをMSIファイルで配布する時、インストール先 のコンピュータに.NET Frameworkがインストールされていなければ、 これが先にインストールされるようにする方法を紹介します。 ★「Microsoft .NET Framework version 1.1 Setup.exe Bootstrapper Sample」を使った方法 まず、MSDNの「.NET Framework 1.1 配布ガイド」と「.NET Framework アプリケーション配布ガイド」(.NET Framework 1.0の場 合)でその方法が説明されています。 [URL].NET Framework 1.1 配布ガイド http://www.microsoft.com/japan/msdn/library/ja/jpdnnetdev/htm/dotnetframedepguid1_1.asp [URL].NET Framework アプリケーション配布ガイド http://www.microsoft.com/japan/msdn/library/ja/jpdnnetdev/htm/dotnetframedepguid.asp [URL]HOW TO: Visual Studio .NET デプロイメント プロジェクトの .NET Framework を配布します。 http://support.microsoft.com/kb/324733/ja ここで紹介されている方法は、マイクロソフトが公開している「 Microsoft .NET Framework version 1.1 Setup.exe Bootstrapper Sample」を使う方法です。(.NET Framework 1.0のBootstrapperはリ ンク先が見つからず、どこにあるのか分かりませんでした。) [URL]Microsoft .NET Framework version 1.1 Setup.exe Bootstrapper Sample http://go.microsoft.com/fwlink/?LinkId=16426 以下にこの.NET Framework 1.1用のBootstrapperを使った場合の手順 を簡単に紹介します。ここでは、インストールするMSIファイル(こ こでは、「Setup1.msi」とする)と、「Microsoft .NET Framework Version 1.1 再頒布可能パッケージ」(dotnetfx.exe)、「 Microsoft .NET Framework Version 1.1 日本語 Language Pack」( langpack.exe)はすでに用意されているものとします。 [URL]Microsoft .NET Framework Version 1.1 再頒布可能パッケージ http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=262D25E3-F589-4842-8157-034D1E7CF3A3 [URL]Microsoft .NET Framework Version 1.1 日本語 Language Pack http://www.microsoft.com/downloads/details.aspx?FamilyId=04DBAF2E-61ED-43F4-8D2A-CCB2BAB7B8EB&displaylang=ja まず上記のリンクから「Microsoft .NET Framework version 1.1 Setup.exe Bootstrapper Sample」(NETFX1.1_bootstrapper.exe)を ダウンロードし、書庫を展開します。すると、「setup.exe」と「 settings.ini」の2つのファイルができます。 次に、settings.iniをテキストエディタで開き、適当な内容に変更し ます。最低限の設定は、次のようになります。 ‥‥▽ここから▽‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ [Bootstrap] Msi=Setup1.msi [LangPacks] 1041 ‥‥△ここまで△‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ まず、[Bootstrap]の「Msi」でインストールするMSIファイルを指定 します。また、[LangPacks]で日本語のLanguage Packのインストール を指定します(Language Packのインストールが必要なければ、省略 できます)。 このsettings.iniとsetup.exe、及びSetup1.msi、dotnetfx.exe、 langpack.exeを同じフォルダに入れてsetup.exeを実行させると、望 みの動作が実現します。 setup.exeを実行すると、「Application Setup」というタイトルの「 To start Application Setup, click OK. To quit without installing, click Cancel.」というダイアログが表示されます。 settings.iniを編集することでこのメッセージを変更できます。また、 エラーダイアログのタイトル(通常は「Application Setup Error」) も変更できます。次にこれらを変更した例を示します。なお、Shift JISで保存してください。(途中で改行しています。) ‥‥▽ここから▽‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ [Bootstrap] Msi=Setup1.msi ProductName=マイアプリ DialogText=「マイアプリ」のセットアップを開始するには「OK」を、 インストールせずに終了するには「キャンセル」をクリックしてください。 CaptionText=マイアプリのセットアップ ErrorCaptionText =マイアプリセットアップエラー [LangPacks] 1041 ‥‥△ここまで△‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ ProductNameにはアプリケーションの名前を指定します。これは、 DialogText、CaptionText、ErrorCaptionTextが指定されていない時 に、「Application Setup」に代わって使われます。 DialogTextには初めに表示されるダイアログのメッセージを、 CaptionTextにはそのタイトルを指定します。ErrorCaptionTextには エラーダイアログのタイトルを指定します。(ただし、エラーメッセー ジは英語です。) さらにMSIファイルとdotnetfx.exe及びlangpack.exeを別のフォルダ に置きたい時は、[Bootstrap]の「FxInstallerPath」でdotnetfx.exe とlangpack.exeのあるフォルダのパスを指定します。このパスは、絶 対パスまたは相対パスを指定できます。例えば、dotnetfx.exeと langpack.exeを「dotnetfx」というフォルダに入れた場合は、次のよ うにします。(途中で改行しています。) ‥‥▽ここから▽‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ [Bootstrap] Msi=Setup1.msi ProductName=マイアプリ DialogText=「マイアプリ」のセットアップを開始するには「OK」を、 インストールせずに終了するには「キャンセル」をクリックしてください。 CaptionText=マイアプリのセットアップ ErrorCaptionText =マイアプリセットアップエラー FxInstallerPath=dotnetfx [LangPacks] 1041 ‥‥△ここまで△‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ ★「Microsoft Visual Studio .NET 2003 Bootstrapper Plug-In」を 使用した方法 マイクロソフトでは、「Microsoft Visual Studio .NET 2003 Bootstrapper Plug-In」というプラグインを配布しています。これを 使用して、.NET Framework 1.1とMDAC 2.7を配布するインストーラを 作成できます。 [URL]Microsoft Visual Studio .NET 2003 Bootstrapper Plug-In http://www.microsoft.com/downloads/details.aspx?FamilyID=627921a0-d9e7-43d6-a293-72f9c370bd19&displaylang=ja [URL]Visual Studio .NET Framework Bootstrapper Plug-in: Workspace Home http://workspaces.gotdotnet.com/vsboot このプラグインをインストール後、VS.NETのデプロイメントプロジェ クトのプロパティで「ブートストラップ」を「Windowsインストーラ ブートストラップ」としてからビルドすることにより、出力された MSIファイルと同じフォルダに、Setup.exe、Settings.ini、Config. ini、dotnetfx.exe、langpack.exeの5つのファイルが作成されます。 これらすべてのファイルを配布し、インストールする時はこのSetup. exeを実行するようにすればよいわけです。 このプラグインはヘルプもなく、説明がほとんどないため、使用法が よく分かりません。よって、ここでの説明はあくまで推測でしかない ことをご了承ください。 まず、ダイアログに表示されるメッセージを変更するには、Config. iniを編集するようです。また、MSIファイルのパス、dotnetfx.exeの パス、langpack.exeのパスをSettings.iniで指定できるようです。 さて、MDACに関しては、このままではインストールされません(必要 に応じてMDACがインストールされる設定になるという報告もあるよう ですが、確認できませんでした)。MDACをインストールする時は、 Settings.iniの「MdacVersion」にMDACのバージョンを設定し、「 BootstrapMdac」をtrueにしてから、Setup.exeと同じフォルダに mdac_typ.exeをコピーします(mdac_typ.exeは、「\Microsoft Visual Studio .NET 2003 Bootstrapper Plug-in \1041」にあります)。 ★「Enhanced .NET Bootstrap Setup」を使用した方法 .NET Frameworkには、Internet Explore 5.01以上がインストールさ れていることが必要です。「.NET Framework 1.1 再配布可能パッケー ジの必要条件」によると、Windows NT 4.0と98にはIE4.01が、 Windows 98 SEにはIE5.00があらかじめインストールされているため、 これらのOSでは5.01以降のIEをインストールする必要があるかもしれ ません。 [URL].NET Framework 1.1 再配布可能パッケージの必要条件 http://www.microsoft.com/japan/msdn/library/ja/jpdnnetdev/htm/NETFx1Redistreq1_1.asp 「The Code Project」の「Enhanced .NET Bootstrap Setup」では、. NET Framework、Language Pack、MDACの他に、IE 6.01とWindows Installerもインストールできるブートストラップが公開されていま す。 [URL]The Code Project - Enhanced .NET Bootstrap Setup http://www.codeproject.com/managedcpp/DotNetSetup.asp 設定は、「settings.ini」で行います。settings.iniの書き方につい ては上記URLで説明されていますが、以下に簡単に説明します。 Msi インストールするMSIファイルのパスを指定します。 ProductName 製品名を指定します。 FxInstallerPath Dotnetfx.exeのあるフォルダのパスを指定します。 IEInstallerPath IE 6.01パッケージ(ie6setup.exe)のあるフォルダのパスを指定し ます。 MSIInstallerPath Windows Installer 2.0パッケージ(InstMsiW.exeとInstMsiA.exe) のあるフォルダのパスを指定します。 MDACInstallerPath mdac_typ.exeのあるフォルダのパスを指定します。 MDACVersion MDACのバージョンを指定します。 .NetVersion .NET Frameworkのバージョン(「v1.0」か「v1.1」)を指定します。 MSDEInstallerPath MSDE(SQL Server 2000 Desktop Engine)インストーラ(setup.exe) のあるフォルダのパスを指定します。 MSDEParams MSDEパラメータを指定します。 この他に「LanguageDirectory」も使われているようで、「\Microsoft.NET\(.NET Frameworkのバージョン)\(「 LanguageDirectory」で指定された文字列)」というフォルダを探し、 なければ.NET Frameworkをインストールするという処理をしているよ うです。(サンプルでは、「LanguageDirectory=jpn」となっていま すが、少なくとも私の環境では、「jpn」ではなく「JA」のようです。) この「Enhanced .NET Bootstrap Setup」ですが、私の環境で試した 限りでは、正常に動作しませんでした。 まず、.NET Frameworkがインストールされていても、「Could not find the .Net Version Number in the registry」というエラーがで て、.NET Frameworkをインストールするように指定します。どうやら このBootstrapでは、dotnetfx.exeのファイルバージョンのビルド番 号をこれがインストールする.NET Frameworkのビルド番号と判断して、 レジストリの「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \.NETFramework\policy\(「.NetVersion」の値)」にこのビルド番 号と同じ値が存在しているか調べ、なければ.NET Frameworkをインス トールするようにしているようですが、そのビルド番号が正しく取得 できていないため、正しく判断できていないようです。 また、Windows Installerのインストールの判断も正しくないようで す。インストールされているWindows Installerのバージョンがきっ ちり2であるか調べ、そうでなければWindows Installerをインストー ルするようにしているようで、バージョン3がインストールされてい ても、Windows Installerをインストールしようとします。(それ以 前の問題として、「.NET Framework再頒布可能パッケージの中身を見 てみる」で紹介したように、そもそもWindows Installer 2.0をイン ストールする必要があるかも疑問です。) 「Enhanced .NET Bootstrap Setup」はソースが公開されているため、 修正は可能でしょう。(メッセージは英語ですが、リソースを書き換 えることにより、日本語表示できそうです。) ★「dotNetInstaller - Setup Bootstrapper for .NET Application」 を使用した方法 ここまでいろいろなBootstrapを紹介してきましたが、これらはすべ てすでに決められたパッケージを、すでに決められた条件で判断して インストールするというものでした。 最後に紹介する「dotNetInstaller - Setup Bootstrapper for .NET Application」では、インストールするパッケージと、インストール する条件を自由にカスタマイズすることができます。よって、.NET FrameworkやMDACだけでなく、NT4のSP6aや、J#の再頒布可能パッケー ジのインストールも指定できます。 [URL]dotNetInstaller - Setup Bootstrapper for .NET Application http://www.devage.com/dotNetInstaller/dotNetInstaller.html dotNetInstallerでは、まずInstaller Editorにより設定ファイル( XMLファイル)を作成する必要があります。設定ファイルは、同梱さ れている「StandaloneSetup」のサンプルが参考になります。サンプ ルにはイタリア語の「Setup Configuration」がありますが、まずは これを日本語(LCID=1041)に変更して使用するとよいでしょう。 dotNetInstallerのBootstrapperを実行するには、dotNetInstaller. exeと同じフォルダに設定ファイル「configuration.xml」と、バナー に使用する画像、unicows.dllを入れ、さらに設定で指定された場所 にパッケージを用意した状態で、dotNetInstaller.exeを実行します。 Installer Editorのメニュー「File」の「Create Exe」によりExeフ ァイルを作成したときは、そのExeファイルに設定とバナーが埋め込 まれますので、設定ファイルとバナー画像は必要なくなります。 設定の書き方について、もう少し補足しておきましょう。 サンプルのイタリア語のSetup Configurationでは、.NET Framework のインストールは行っていますが、Language Packのインストールは 行っていないようです。そこで試しに、.NET Frameworkの日本語 Language Packをインストールする設定を加えることにしましょう。 (ここでは、LCIDが1041のSetup Configurationがあるものとします。) まず「install:1041」の項目を右クリックし、「Add」から「Command Component」を選択します。作成された「Command Component」の設定 は、 command "#APPPATH\SupportFiles\dotNet1.1\Japanese\LangPack.exe" /q:a /c:"inst /l /q" description Microsoft .NET Framework Version 1.1 日本語 Language Pack note 日本語 - Standard - .NET Framework Version 1.1 日本語 Language Pack とします。 次にこのCommand Componentが実行される条件を指定します。日本語 Language Packがインストールされているか調べる方法については、 「.NET Framework 1.1 の再配布」で説明されています。これによる と、レジストリの「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322\1041」に「Install(DWORD value = 1)」という値があれば、すでにインストールされていると判断でき るようです。 [URL].NET Framework 1.1 の再配布 http://www.microsoft.com/japan/msdn/library/ja/jpdnnetdev/htm/redistdeploy1_1.asp 上記で作成したCommand Component項目を右クリックし、「Add」の「 Installed Check Registry」を選択します。そして、次のように項目 を埋めます。 comparison match fieldname Install fieldtype REG_DWORD fieldvalue 1 path SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322\1041 これで日本語Language Packがインストールされていない時にインス トールされる設定が追加されました。 ただ問題は、その位置です。今の状態では、アプリケーションのMSI ファイルの後にLanguage Packがインストールされることになります。 Command Componentの位置を変更するのは、Installer Editorでは無 理のようです。よって、設定ファイルをテキストエディタで開き、手 作業で修正する必要があります(メニューの「File」-「Edit With Notepad」により、メモ帳で開くことができます)。 同様の方法で、J#の再頒布可能パッケージとLanguage Packをインス トールする設定も追加することができます。これらがインストールさ れているか調べる方法も、「.NET Framework 1.1 の再配布」で説明 されています。 参考までに、以上のように作成した設定を、日本語のSetup Configurationの部分のみ、以下に示します。(一行が長いため、途 中で改行しています。)いい加減なものですので、参考だけにしてく ださい。 ‥‥▽ここから▽‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ ‥‥△ここまで△‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ dotNetInstallerの凄い所はこれだけではありません。 dotNetInstallerでは、必要なパッケージをインターネットからダウ ンロードしてインストールすることもできるのです。さらに、 bootstrapperのみをWebに公開し、残りのすべてのファイルは必要に 応じてダウンロードしてインストールするということまでできてしま います。この方法に関しては、dotNetInstallerのサイトの「How to create a Web Setup to install .NET Framework and your msi setup」をご覧ください。 ただし、私が試したところでは、ダウンロードしたファイルはインス トール終了後も削除されないようです。 ★最後に ここで紹介したbootstrapperは、ユーザーがEXEファイルを無視して、 MSIファイルを直接実行してしまったら全く意味がありません。これ を防ぐには、すべてのファイルを自己展開書庫にまとめ、この自己展 開書庫を実行した時に自動的にbootstrapperを実行するようにする方 法があります。このような書庫を作成するのに適したアーカイバにつ いては、DOBON.NETの「おまけのアーカイバ選び」をご覧ください。 [URL]DOBON.NET - 5.おまけのアーカイバ選び http://dobon.net/vb/installer/installer5.html また、MSIファイルが直接実行されたとしても、必要なソフトウェア がコンピュータにインストールされていなければ実行できないように、 適当な起動条件を追加したほうがよいかもしれません。例えば、MDAC 2.6以降がインストールされていることを起動条件とする方法に関し ては、「Visual Studio .NET 2003 による .NET Framework の再配布」 で紹介されています。 [URL]Visual Studio .NET 2003 による .NET Framework の再配布 http://www.microsoft.com/japan/msdn/library/ja/jpdnnetdev/htm/vsredistdeploy1_1.asp =============================== ■ここで示したコードの多くはまずC#で書き、それを「C# to VB.NET Translator」でVB.NETのコードに変換し、修正を加えたものです。 [URL]C# to VB.NET Translator http://authors.aspalliance.com/aldotnet/examples/translate.aspx ■このマガジンの購読、購読中止、バックナンバー、説明に関しては  次のページをご覧ください。  http://www.mag2.com/m/0000104516.htm ■発行人・編集人:どぼん!  (Microsoft MVP for Visual Basic, Oct 2004-Oct 2005)  http://dobon.net  dobon_info@yahoo.co.jp ■ご質問等はメールではなく、掲示板へお願いいたします。  http://dobon.net/vb/bbs.html ■上記メールアドレスへのメールは確実に読まれる保障はありません  (スパム、ウィルス対策です)。メールは下記URLのフォームメール  から送信してください。  http://dobon.net/mail.html Copyright (c) 2003 - 2005 DOBON! All rights reserved. ===============================