厳密名とオブジェクトデータソースとMicrosoft VisualStudio 2005 ReportViewer
厳密名とオブジェクトデータソースが相性悪いですね。
ReportViewer を組み合わせると、VisualStudio の上から簡単な操作で Visual Studio で修正不可能なエラー状態に陥ってしまいました。
再現手順は、
- プロジェクトのプロパティで署名を実施するようにする(厳密名をつける)
- オブジェクトデータソース Foo を作成する。(データソースの追加→オブジェクト)
- ReportView で新奇デザインを作成しオブジェクトデータソースから何かを追加する
- ビルド
- プロジェクトのプロパティでアセンブリのバージョンを変更する
- ビルド
- ReportView にオブジェクトデータソースから何かを追加する
といったところでしょうか。この手順でレポートを破棄するまで Foo が二重に定義されているというビルドエラーが解消できなくなるでしょう。
クライアントレポート定義ファイル (*.rdlc) を開くと、
<DataSets> <DataSet Name="Foo"> <Type>最初にビルドしたときの Foo の完全修飾名</Type> </DataSet> <DataSet Name="Foo"> <Type>2回目にビルドしたときの Foo の完全修飾名</Type> </DataSet> </DataSets>
となってしまっています。
レポートのデザイン画面を閉じた状態で、テキストエディタなどで古い完全修飾名の DataSet を削除するとビルドできるようになります。
他に、Properties/DataSources/Foo.datasource の中にも完全修飾名が入っているので、そちらも修正しておくほうがよいかもしれません。