キノコの自省録

日々適当クリエイト

【Silverlight2】InitializeError 2106が発生

前に作成したSilverlightストップウォッチが、
Silverlight2正式版(RTW)リリース後に動かなくなってしまっていたので、
ちゃんと動くように修正しました。

・・・若干苦労しました。
なぜかInitializeErrorが発生して、動いてくれなかったためです。

原因はランタイムのバージョンと、
マニフェストのバージョンが合っていないせいでした。
最新版のSDKをいれたつもりなんですが、ハテ??
リリース日も2008/10/13となっていますよね??
うーん。
とりあえず、原因を書いておきます。

Managed JScriptRubyなど、SilverlightをDLRで動かす場合は、
xapファイルを作る必要があります。
xapファイルをChiron.exeで作成しますと、
AppManifest.xamlというマニフェストファイルも同時に作成されます。
今回の問題は、このマニフェストファイルに記載されたランタイムのバージョンが合っていなかったことが原因でした。
何も考えずに作ったマニフェストに記載のランタイムバージョンは、
2.0.30523となっていますが、
これは、ベータ版のバージョン番号です。
Silverlight2 RTWのバージョン番号は、2.0.31005です。
マニフェストのランタイムバージョンを、上述のように変更すると、動くようになりました。
Chironで出力されるマニフェストファイルを修正したい場合は、
Chiron.exe.configの該当箇所を修正すると良いです。

また、htmlのSilverlightレンダリング先である、
objectタグの属性dataとtypeも、
ベータ版とは異なりますので、これも変更の必要があります。
この情報は、ここをご覧ください。