[WPF]特定のリソースの組み合わせでビルドが通らなくなるバグ

よっぽど変な勘違いをしていなければ、VisualStudio(MSBuild?)のバグだと思われる話。
再現環境は.NET 4.0, VS2010のC# Express。
あと.NET 4.5, VS Express 2012のfor Desktopでもやっぱり再現した。

正常に動作していたコードで、唐突にビルドが通らなくなったのです。
MainWindowのクラスで、
「名前 ‘InitializeComponent’ は現在のコンテキスト内に存在しません。」
そんなばかなと思ってobjフォルダを開いたら、
MainWindowのbamlファイルもg.csも生成されていなかった。

で、いろいろ試してみたら、どうもMainWindow.xamlの
Resoucesに指定した内容が原因らしいとわかった。


とりあえず最小の再現コードを載せてしまう。

<Window x:Class="MainWindowBamlLostSample.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:MainWindowBamlLostSample"
        Title="MainWindow" Height="350" Width="525">

    <Window.Resources>
        <local:Class1 x:Key="class1"/>
        <x:Array Type="Brush" x:Key="array1" />
    
    </Window.Resources>
</Window>

適当な自作クラスのオブジェクトと、
適当な型の配列オブジェクトを同時にリソースに入れると
突然ビルドが通らなくなる。
 

見つけられた限りではこの組み合わせだけで、
以下のような組み合わせでは全て問題なくビルドできた。

<SolidColorBrush x:Key="brush1"/>
<x:Array Type="Brush" x:Key="array1" />
<x:Array Type="Brush" x:Key="array1" />
<x:Array Type="Brush" x:Key="array2" />
        
<sys:String x:Key="str1" xmlns:sys="clr-namespace:System;assembly=mscorlib" />
<x:Array Type="Brush" x:Key="array1" />
   
<local:Class1 x:Key="class1"/>
<SolidColorBrush x:Key="brush1"/>

 

あるいはマークアップ拡張の使い方がまずかったりするんだろうか…。