Silverlight で XNA のコンテンツプロパインを使うためのプロジェクトファイルへの追加書き込み

なんか毎回忘れているのでメモ書き。

csproj ファイルをテキストファイルで開き、Project タグ以下に以下のタグを追加する。

<PropertyGroup>
   <XnaContentProject>..XXXXSampleContentProjectXXXXSampleContentProject.contentproj</XnaContentProject>
</PropertyGroup>
<Target Name="BeforeBuild">
   <MSBuild Projects="$(XnaContentProject)" Properties="XnaContentPipelineTargetPlatform=Windows;XnaContentPipelineTargetProfile=Reach" />
   <CreateItem Include="$(XnaContentProject)">
     <Output TaskParameter="Include" ItemName="XnaContentProjectItem" />
   </CreateItem>
   <CreateProperty Value="%(XnaContentProjectItem.RelativeDir)">
     <Output TaskParameter="Value" PropertyName="XnaContentProjectPath" />
   </CreateProperty>
   <CreateItem Include="$(XnaContentProjectPath)cachefile*targetpath.txt">
     <Output TaskParameter="Include" ItemName="XnaContentCacheFile" />
   </CreateItem>
   <ReadLinesFromFile File="@(XnaContentCacheFile)" Condition="Exists(@(XnaContentCacheFile))">
     <Output TaskParameter="Lines" ItemName="XnaContentOutputs" />
   </ReadLinesFromFile>
   <CreateItem Include="@(XnaContentOutputs->'$(XnaContentProjectPath)binAnyCPU$(Configuration)%(Identity)')" AdditionalMetadata="Link=Content%(RelativeDir)%(Filename)%(Extension)">
     <Output TaskParameter="Include" ItemName="Content" />
   </CreateItem> </Target>

ただし、プロジェクトをビルドしたりなんかしているといつの間にか以下のようなコメントが csproj ファイルの中に追加されていて、前に追加したタグもすべてコメントアウトされていることがある。

To modify your build process, add your task inside one of the targets below and uncomment it. Other similar extension points exist, see Microsoft.Common.targets.

実はコメントアウトされたタグの下にまったく同じタグが再度追加されているが、なぜかこのコメントアウトされたものが残っていると正しくコンテンツパイプラインが動作しない。なのでコメントをすべて削除して再ビルドする必要がある。

メモ書きなので環境によっては動作が異なる場合があるので注意してください。

]]>

Windows フォームカラーデザイナー Ver 0.01 公開

ひさびさのちーたんつ~るず第2弾を公開しました。

Windows フォームカラーデザイナーは Windows フォームのコントロールの色を編集するためのツールです。元々は ToolStripManager の Renderer に設定する ProfessionalColorTable の色を作成するために作っていたのですが、そこからいくつか昨日を拡張したツールになります。

基本的な機能は各コントロールの色を編集して XML や CSV, プログラムコードなどにエクスポートするものとなっています。そんなに機能はないので使ってみたほうが分かりやすいかと思います。

WinFormColorTop_0001

ちーたんタッチボードの公開のときにも書きましたが、ちーたんつ~るずは「これ作ればたくさん使ってくれるだとう」とか「これは絶対ものすごく役に立つツールだ」というような考えて作ったツールではなく、「自分でたまたま欲しかった」とか「さすがにこれは使う人あんまりいないんじゃないか」的なものになっています。直感的に作ってみて、それなりに使えそうだったら公開してしまおうか、というような感じで作ったツールの集まりになるかと思います。

Windows フォームカラーデザイナーも利用者は「開発者」に限定されていますし、さらにその中でも「Windows フォームアプリケーション開発者」に絞られるかと思います (独自に色は作成できるのでその限りではないのですが)。それでも使いたい人が1人でも2人でもいるのであれば公開して使っていただくのもいいかなーと思ってます。

Windows フォームカラーデザイナーは以下のページで公開しています。細かくはないですが使い方とか概要なども載せましたので、使ってみたい方はダウンロードしてみてください。

]]>

ドメイン間ポリシーファイルの配置場所

Silverlight や Flash などのアプリケーションが提供されたドメインと異なる URL の Web サービスを使用するには「ドメイン間ポリシーファイル」が「Web サービス側」に配置されている必要があります。(Silverlightドメイン間ポリシー(clientaccesspolicy.xml)や Flashドメイン間ポリシー(crossdomain.xml))

イントラネットワーク内のサイトで提供している Web サービスでも同様でドメイン間ポリシーファイルを配置する必要がありますが、配置する場所は必ずホスト名直下の URL で取得できる位置に配置する必要があります。(例:http://<サーバー名>/clientaccesspolicy.xml など)

IIS などで同じポートで複数のアプリケーションを配置するために Default Web Site の下にアプリケーションを作成する場合があると思いますが、その場合も個々のアプリケーションごとにドメイン間ポリシーファイルを配置するのではなく、Default Web Site が使用している物理フォルダ (デフォルト「C:inetpubwwwroot」)に配置する必要があります。

]]>