承認されなかった場合は、エラー・メッセージを表示します。あと一つだけ、小さな項目が残っています。メッセージ・ボックスの中でアイコンに言及していますので、これもインストーラの中に入れなければなりません。して、ダウンロードすることが出来ます。ところで、ログ・ファイルにユーザー・キーが出現するのは、必ずしも、良いことでも安全なことでもありません。これを回避するためには、以下のように記述します。それに類するもので書くことが出来るか、というものです。何と言っても、それらの実行時環境は、はるかに豊かな機能セットを提供してくれますからね。それに、これらの言語で仕事をしているプログラマには、他のプログラミング言語をあまり知らない人もいるようです。時代には、マネージ・コードでカスタム・アクションを書くためには裏技(hack)が必要で、それは良くない危険な行為だと考えられていました。クラス・ライブラリと関連するリソースのセットが導入されたことによって、事情が変りました。入っていることを確認しなければなりません。ブートストラップ・インストーラを初めに使う必要があるでしょう。移植したものを以下に示します。ソース・コードには、ほんの一箇所だけ、修正が必要なところがあります。名前は違うものになります。特殊なパッケージに包む必要があるためです。いう小さなファイルも用意して下さい。このファイルは、マネージ・カスタム・アクションが依存するランタイムについて記述するものです。言語で仕事をするときの相対的な容易さには代償があります。それは、ビルドのプロセスが複雑になるということです。使えばいくらか簡単になるでしょう。部門の下にサンプル・プロジェクト・ファイルがあります。ここでは、コマンド・ラインによる方法を示すことしか出来ません。ツールセットの中にある筈です。して記述している箇所は、省略しない絶対パスを指定しなければいけません。役に立たない物になります。自体のドキュメントがあります。ついてこれ以上言及しません。そちらのドキュメントとサンプル・コードを使って下さい。後の段階でカスタム・アクションは、シーケンス・テーブルに行を挿入することによって、プロパティをセットしたり、機能やコンポーネントの状態を変更したり、インストール先ディレクトリを設定したり、あるいはシステムの操作をスケジュールしたりします。場合、それらのカスタム・アクションは即時に実行しても支障の無いものです。システムを直接に変更したり、他のシステム・サービスを呼んだりする必要があるカスタム・アクションは、インストール・スクリプトが実行される時まで延期されなければなりません。いう遅延実行の(deferred)カスタム・アクションをインストール・スクリプトに書き込んで、後で実行します。遅延実行のカスタム・アクションは、下記のように定義します。属性が、カスタム・アクションが遅延実行されるものであることを指し示しています。スタイルの関数名に対する装飾を忘れないで下さい)。指定して、このカスタム・アクションに渡される引数のロギングを無効にすることが出来ます。インストール・スクリプトは通常のインストール・セッションの外で実行されますので、遅延実行のアクションが実行される時には元のセッションはもう存在しません。元のセッションのハンドルも、元のインストールのシーケンスで設定されたプロパティ・データも、遅延実行アクションからは使うことが出来ません。遅延実行のアクションが取得できる非常に限られた量の情報は、以下の三つのプロパティから成り立っています。CustomActionDataカスタム・アクションがシーケンス・テーブルで処理される時の値。このプロパティは遅延実行のカスタム・アクションだけが使用出来るもので、即時実行のカスタム・アクションからはアクセス出来ません。UserSIDユーザーのセキュリティー識別子(SID)。インストーラによってセットされます。遅延実行のアクションに他のプロパティ・データを渡す必要がある場合は、その値を前もって設定する第二のカスタム・アクションを使うことが出来ます。簡単な解法はプロパティ設定のカスタム・アクションです。属性と同じになるように設定して下さい。/>プロパティの設定を遅延実行のアクションの前にスケジュールすることも重要です。プロパティの中に出現します。複数の情報を渡す必要がある場合は、それらをこの単一のプロパティに組み入れる方法を工夫しなければなりません。ペアのリストを使う等です。Tramontána何よりもコメントと寄稿を歓迎します。softark読みやすくて正確な翻訳を目指しましたが、解釈の誤りと技術的な間違いが含まれていないという保証は出来ません。間違いの指摘や修正案の提示を歓迎します。