none
Installerクラスからのレジストリ書き込み RRS feed

  • 質問

  • 環境:VS.2005

     

    セットアッププロジェクトを利用して、ファイルの展開・Webサイトの作成を実施するインストーラを作成しています。

    Installerクラスを利用して、その中でADSIを利用してWebサイトを新規作成しています。

    そこで作成したWebサイトの識別子をレジストリ登録したいのですが、実現できるものなのでしょうか。

     

    そもそも、Webサイトを作るならばWebセットアッププロジェクトを利用するべきなのでしょうが、

    私が確認した限りではインストール時に、すでに存在するサイトに仮想ディレクトリを作成することしかできず、

    Webサイトの新規作成はできないようだったので、上記のような作りになっています。

     

    また、識別子をレジストリ登録する理由は、アンインストール時にその識別子を参して、

    再度ADSIを利用して、インストール時に作成したWebサイトを削除するためです。

     

    ご存じの方がいらしたら、ご教授ください。

    2008年3月10日 11:49

回答

  • 自己レスです。

     

    Installerクラスで普通にRegistryKeyクラスを利用すれば、

    レジストリに登録できるものなのですね。

    セットアッププロジェクトのプロパティでどうにかすることしか頭にありませんでした。。。

    # だいぶ混乱していたようです。。

     

    Webサイトの識別子は、ユーザが入力したインストールディレクトリをキーに取得しました。

    ご参考までに↓

    1) ユーザの入力したインストールディレクトリをPathに持ち、

        SchemaClassName属性の値がIIsWebVirtualDirであるDirectoryEntryを取得。

    2) 1)で取得したDirectoryEntryの親のDirectoryEntryを取得。

    3) 2)で取得したDirectoryEntryのSchemaClassNameがIISWebServerであることを確認。

    4) 2)で取得したDirectoryEntryのName属性の値を取得。(これがサイトの識別子)

     

     

    2008年3月11日 8:24