WPFxUPnP その6

いよいよ、作り込みに入っていきます!
まずは、プロジェクトの設定を行います。
次のことを実行してください。

  1. プロジェクトの参照設定にCOMの中から、「UPnP 1.0 Type Library(Device Host)」を加える
  2. プロジェクトにフォルダ(web)を作成して、作成したDimmableLight.xml、SwitchPower.xml、present.htmlを登録
  3. 登録したxml2つとhtmlのプロパティを設定する
    • 「ビルド アクション」をコンテンツ
    • 「出力ディレクトリにコピー」を常にコピーする or 新しい場合はコピーする
  4. プロジェクトのプロパティ−「デバッグ」の「Visual Studioホスティングプロセスを有効にする」のチェックを外す
  5. ビルドしてできあがったwebフォルダのプロパティにAuthenticated Usersに読み取り権限付加

要は、UPnPバイスに必要なライブラリを利用できるようにして、実行に必要なリソース(xml/html)を登録。
それで、ビルドしたときに、コピーされて利用できるようにしてます。

また、デバッグする際に、ホスティングプロセスを無効にしないと、UPnPバイスの登録ができません。
これは、COMがUPnPバイスオブジェクトを利用するのですが、ホスティングプロセスが邪魔をして、うまく利用できないためだと思われマス。

あと、実行時にリソースをCOMが読みとるため、ファイルのセキュリティを許可しないとこれまた失敗します。
(ファイルのセキュリティがない場合、エラーがファイルがありませんって・・・(−−;)
ビルド後イベントに次のように入れておくのもアリかと思います。

cacls "$(TargetDir)web" /e /g "Authenticated Users":r