先日、私の環境にてDXv2のバージョンをv12.1にアップデート (v12.1.6) したところ
以下の現象が発生しました。(なんかこの現象、前にも別の問題で発生したことがあります...)
- VSのローディングがすごく遅い。
- DevExpressのコントロールがツールボックスに重複して何回も表示される。
何回、アンインストールとインストールを繰り返しても発生するので
SCを検索してみたら、以下のKBを発見。
- How to resolve issues with Toolbox items (Applies to: WinForms and ASP.NET starting with version 12.1, WPF and SL, any version)
上記のKBに記載されている方法を試すと、現象が解消されたのでメモしておきます。
私の場合は、VS2010とVS2012を共存させていたので、この現象が発生したみたい。
また、このやり方はたぶん汎用的な方法だと思うので、なにかあったときに利用出来そうです。
以下、上記KBの解決方法の部分をメモしてます。
尚、Express Editionの場合は以下の方法が行えませんのでご注意を。
1) エクスプローラーで「"%USERPROFILE%\AppData\Local\Microsoft\VisualStudio\10.0"」を開いて、全てのTBDファイルを削除
2) regedit.exe起動
3) 以下のキーまで移動して、サブキーごと削除。
・"HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\ToolboxControlsInstaller_AssemblyFoldersExCache"
・"HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\ToolboxControlsInstallerCache"
4) VisualStudio 2010を以下のコマンドで起動
・ devenv /ResetSkipPkgs /log "\ActivityLog.xml"
5) プロジェクトを新規作成して、ツールボックスを表示。ツールボックスの再初期化が行われるので、じっと待つ。
私の場合は、上記の手順まで直りましたが、稀にまだ問題が残る事もあるそうです。
その場合は、以下の手順を試してみるといいみたい。
[ツールボックスの項目が欠損している]
ActivityLog.xmlを開いて、以下の文字列が存在するレコードをチェックする。
"Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage"
もし、上記のレコードが存在しない場合は、レジストリの以下のキーを探す。
32ビットの場合
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Packages\{2c298b35-07da-45f1-96a3-be55d91c8d7a}"
64ビットの場合
"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Packages\{2c298b35-07da-45f1-96a3-be55d91c8d7a}"
このキーは、VisualStudioのインストール段階で追加されます。この場合、VisualStudioを再インストールするか、このKBに付属しているスクリプトを実行します。もし、上記のキーが一つでも存在しているけど、ツールボックスの項目が見えない場合、そのキーを展開すると"Toolbox"というキーが見つかります。
このキーは、デフォルトのアイテムを含んでおり (DefaultItems)、値が通常0以外であるべきです。なので、この値を1にしてやると問題が解決します。
KBに添付のスクリプトを実行することでも行えます。
[VisualStudioが起動するたびにツールボックスの読み込みにすごく時間がかかる]
[ツールボックスの項目が重複して表示される]
ActivityLog.xmlを開き、以下のエントリを探します。
"Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage"
最後のエントリが問題のアセンブリを示しています。
行の末尾に、問題のアセンブリが示されています。問題が解決したら、再度上記の手順を最初からやり直して、また確認します。
もし最後のエントリが以下のような文字列を含んでいる場合:
"Attempting to get Toolbox items from Assembly Microsoft.ServiceModel.DomainServices.EntityFramework"
原因は、RIA Serviceにあります。 WCF RIA ServiceとWCF RIA Service Toolkit (必要ななければ) をアンインストールするか
以下のレジストリキーを削除します。32ビットの場合
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Silverlight\v4.0\AssemblyFoldersEx\Ria Services v1.0 Silverlight Libraries\Toolbox"
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Silverlight\v5.0\AssemblyFoldersEx\Ria Services v1.0 Silverlight Libraries\Toolbox"
64ビットの場合
"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Silverlight\v4.0\AssemblyFoldersEx\Ria Services v1.0 Silverlight Libraries\Toolbox"
"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Silverlight\v5.0\AssemblyFoldersEx\Ria Services v1.0 Silverlight Libraries\Toolbox"
================================
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ
サンプルコードは、以下の場所で公開しています。
- いろいろ備忘録日記サンプルソース置き場