作成日: 2017/09/14 最終更新日: 2017/09/14
文書種別
技術情報
詳細
製品をバージョンアップした後などに、ツールボックスからComponentOne Studioのコントロールを選択し、フォームに配置しようとすると、「アセンブリ~が見つかりません」といったエラーが発生して貼り付けられなかったり、設計画面の下にアイコンが表示されるだけでコントロールのデザインができなくなったりすることがあります。
ComponentOne Studioでは、製品のインストールあるいはアンインストールによって、ツールボックスに登録されたコントロールの登録・登録解除は自動的に行いません。
そのため、バージョンアップ後に、ツールボックスのコントロールのバージョンと実際にインストールされた製品のバージョンが一致せず、Visual Studioが古いアセンブリの情報を使用してしまうことになるため、本現象が発生します。
このような場合は、Visual Studioのツールボックスから対象コンポーネントを削除した後、ツールボックスへの再登録を行ってください。
【コントロールの再登録の手順】
1. Visual Studioのツールボックスで右クリックし[ツールボックスのリセット]を選択します。
2. Visual Studioを終了します。
3. 後述するフォルダに「*.cache」というファイルが存在すれば(※)、これを削除します。
4. Visual Studioを起動して、ツールボックスにコンポーネントを再登録します。
上記方法ではツールボックスの全ての項目がリセットされます。
※
「*.cache」の場所は、以下のようになります。
C:¥Users¥<ユーザー名>¥AppData¥Roaming¥Microsoft¥VisualStudio¥9.0
・ファイル名は「DotNetComponents.cache」
・上記パスはVisual Studio 2008の場合です。
Visual Studio 2010/2012/2013/2015/2017では最後の数字がそれぞれ10.0/11.0/12.0/14.0/15.0_****(****は任意の16進数の羅列)になります。
また、「*.cache」ファイル以外に、「AppData¥Local¥Microsoft¥VisualStudio¥(ver)」フォルダ内に「toolbox***.tbd」(***は空文字を含む任意の文字列)が存在すれば、これらも削除してください。
ツールボックスのリセット方法を含む製品の更新手順全般について、以下の移行ガイドをご参照いただけます。
◇移行ガイド
http://c1.grapecity.com/help/web/common/c1studio/index.htm#!Documents/_15.htm
なお、上記対応を行った後も現象が改善しない場合は、以下の点についてもご確認ください。
◎GAC登録の有無の確認
対象のコンポーネントがGACに登録されていないか確認し、登録されていた場合はこれを削除します。
GAC登録として、以下の場所をご確認いただくほか、ここに表示されない場合もありますので、Gacutilツールを使用して確認してください。
・C:¥Windows¥assembly
※Gacutilツールの仕様方法については、MSDNをご参照ください。
◎アセンブリフォルダ下のレジストリキーの確認
レジストリエディタで、ComponentOne StudioのアセンブリをインストールしているBinフォルダを示すキーを確認します。
・コンポーネントのアセンブリがインストールされている場所
HKEY_LOCAL_MACHINE¥SOFTWARE¥WOW6432Node¥Microsoft¥.NETFramework¥v4.0.30319¥AssemblyFoldersEx¥C1 WinForms
・コンポーネントのデザイナアセンブリのインストールされている場所
HKEY_LOCAL_MACHINE¥SOFTWARE¥WOW6432Node¥Microsoft¥.NETFramework¥v4.0.30319¥AssemblyFoldersEx¥C1WinFormsDesigner
上記フォルダに、該当するアセンブリが入っている事を確認するか、または、キーの値を、実際にアセンブリの入っている場所に変更します。
※レジストリキーの変更は重大な影響を及ぼすことがありますので、お客様の責任の下で慎重に行ってください。
***【解説】***
本現象の主な原因は、デザイナアセンブリ(C1.Win.C1xxxx.4.Design.dll)が正しく参照できないことです。
その要因として、次のような項目が挙げられます。
①正しいバージョンのデザイナアセンブリが参照できない
②古いキャッシュが存在する
③レジストリが不正になっている
最初に紹介した各種対応を行っても現象が改善しない場合、次のような点について再度ご確認ください。
①について
・C1.Win.C1xxxx.4.Design.dllが存在するでしょうか
・C1.Win.C1xxxx.4.Design.dllのアセンブリバージョンがC1.Win.C1xxxx.4.dllのバージョンと一致しているでしょうか
※各アセンブリは、以下の場所にインストールされます。
・C1.Win.C1xxxx.4.dll
C:¥Program Files¥ComponentOne¥Studio for WinForms¥Bin¥v4 (32ビットマシンの場合)
C:¥Program Files (x86)¥ComponentOne¥Studio for WinForms¥Bin¥v4 (64ビットマシンの場合)
・C1.Win.C1xxxx.4.Design.dll
C:¥Program Files¥ComponentOne¥Studio for WinForms¥Bin¥v4¥Designer (32ビットマシンの場合)
C:¥Program Files (x86)¥ComponentOne¥Studio for WinForms¥Bin¥v4¥Designer(64ビットマシンの場合)
②について
・正しいキャッシュフォルダを検索しているかどうか、再度ご確認ください。
例えばOSがWindows10の場合、キャッシュフォルダは通常以下の場所になります。
C:¥Users¥<ユーザーアカウント名>¥AppData¥Local¥Microsoft¥VisualStudio¥<VSバージョン>
またVS2015の場合は、<VSバージョン>は「14.0」となります。
③について
・AssemblyFoldersExレジストリキーのサブキーとして「C1 WinForms」および「C1WinFormsDesigner」が存在しない、あるいはこれらのキー内のパス情報が不正(存在しない、パスに誤りなど)ではないでしょうか。
※レジストリキーが存在しない場合、以下の手順で再登録してください。
1) 下記レジストリキーを作成
HKEY_LOCAL_MACHINE¥SOFTWARE¥WOW6432Node¥Microsoft¥.NETFramework¥v4.0.30319¥AssemblyFoldersEx¥C1WinFormsDesigner
2) その既定値としてデザイナアセンブリファイルが存在するパスを記述
(例)C:¥Program Files (x86)¥ComponentOne¥Studio for WinForms¥Bin¥v4¥Designer
※レジストリキーの変更は重大な影響を及ぼすことがありますので、お客様の責任の下で慎重に行ってください。
・AssemblyFoldersExレジストリキー内のサブキーとして、上記以外のキーによって異なるバージョンのC1.Win.C1xxxx.4.Design.dllへの参照が含まれていることがないでしょうか。
④上記以外の可能性について
・ツールボックスのC1xxxxコンポーネント参照時の問題
(A) 「ツールボックス アイテムの選択」の一覧に旧バージョンのコンポーネントが残っていて、ツールボックスにコンポーネントを再登録する際にこれを選択したケース
(B) ツールボックス一覧内からは選択せず、[参照]ボタンをクリックして古いアセンブリを参照してしまったケース
ComponentOne Studioでは、製品のインストールあるいはアンインストールによって、ツールボックスに登録されたコントロールの登録・登録解除は自動的に行いません。
そのため、バージョンアップ後に、ツールボックスのコントロールのバージョンと実際にインストールされた製品のバージョンが一致せず、Visual Studioが古いアセンブリの情報を使用してしまうことになるため、本現象が発生します。
このような場合は、Visual Studioのツールボックスから対象コンポーネントを削除した後、ツールボックスへの再登録を行ってください。
【コントロールの再登録の手順】
1. Visual Studioのツールボックスで右クリックし[ツールボックスのリセット]を選択します。
2. Visual Studioを終了します。
3. 後述するフォルダに「*.cache」というファイルが存在すれば(※)、これを削除します。
4. Visual Studioを起動して、ツールボックスにコンポーネントを再登録します。
上記方法ではツールボックスの全ての項目がリセットされます。
※
「*.cache」の場所は、以下のようになります。
C:¥Users¥<ユーザー名>¥AppData¥Roaming¥Microsoft¥VisualStudio¥9.0
・ファイル名は「DotNetComponents.cache」
・上記パスはVisual Studio 2008の場合です。
Visual Studio 2010/2012/2013/2015/2017では最後の数字がそれぞれ10.0/11.0/12.0/14.0/15.0_****(****は任意の16進数の羅列)になります。
また、「*.cache」ファイル以外に、「AppData¥Local¥Microsoft¥VisualStudio¥(ver)」フォルダ内に「toolbox***.tbd」(***は空文字を含む任意の文字列)が存在すれば、これらも削除してください。
ツールボックスのリセット方法を含む製品の更新手順全般について、以下の移行ガイドをご参照いただけます。
◇移行ガイド
http://c1.grapecity.com/help/web/common/c1studio/index.htm#!Documents/_15.htm
なお、上記対応を行った後も現象が改善しない場合は、以下の点についてもご確認ください。
◎GAC登録の有無の確認
対象のコンポーネントがGACに登録されていないか確認し、登録されていた場合はこれを削除します。
GAC登録として、以下の場所をご確認いただくほか、ここに表示されない場合もありますので、Gacutilツールを使用して確認してください。
・C:¥Windows¥assembly
※Gacutilツールの仕様方法については、MSDNをご参照ください。
◎アセンブリフォルダ下のレジストリキーの確認
レジストリエディタで、ComponentOne StudioのアセンブリをインストールしているBinフォルダを示すキーを確認します。
・コンポーネントのアセンブリがインストールされている場所
HKEY_LOCAL_MACHINE¥SOFTWARE¥WOW6432Node¥Microsoft¥.NETFramework¥v4.0.30319¥AssemblyFoldersEx¥C1 WinForms
・コンポーネントのデザイナアセンブリのインストールされている場所
HKEY_LOCAL_MACHINE¥SOFTWARE¥WOW6432Node¥Microsoft¥.NETFramework¥v4.0.30319¥AssemblyFoldersEx¥C1WinFormsDesigner
上記フォルダに、該当するアセンブリが入っている事を確認するか、または、キーの値を、実際にアセンブリの入っている場所に変更します。
※レジストリキーの変更は重大な影響を及ぼすことがありますので、お客様の責任の下で慎重に行ってください。
***【解説】***
本現象の主な原因は、デザイナアセンブリ(C1.Win.C1xxxx.4.Design.dll)が正しく参照できないことです。
その要因として、次のような項目が挙げられます。
①正しいバージョンのデザイナアセンブリが参照できない
②古いキャッシュが存在する
③レジストリが不正になっている
最初に紹介した各種対応を行っても現象が改善しない場合、次のような点について再度ご確認ください。
①について
・C1.Win.C1xxxx.4.Design.dllが存在するでしょうか
・C1.Win.C1xxxx.4.Design.dllのアセンブリバージョンがC1.Win.C1xxxx.4.dllのバージョンと一致しているでしょうか
※各アセンブリは、以下の場所にインストールされます。
・C1.Win.C1xxxx.4.dll
C:¥Program Files¥ComponentOne¥Studio for WinForms¥Bin¥v4 (32ビットマシンの場合)
C:¥Program Files (x86)¥ComponentOne¥Studio for WinForms¥Bin¥v4 (64ビットマシンの場合)
・C1.Win.C1xxxx.4.Design.dll
C:¥Program Files¥ComponentOne¥Studio for WinForms¥Bin¥v4¥Designer (32ビットマシンの場合)
C:¥Program Files (x86)¥ComponentOne¥Studio for WinForms¥Bin¥v4¥Designer(64ビットマシンの場合)
②について
・正しいキャッシュフォルダを検索しているかどうか、再度ご確認ください。
例えばOSがWindows10の場合、キャッシュフォルダは通常以下の場所になります。
C:¥Users¥<ユーザーアカウント名>¥AppData¥Local¥Microsoft¥VisualStudio¥<VSバージョン>
またVS2015の場合は、<VSバージョン>は「14.0」となります。
③について
・AssemblyFoldersExレジストリキーのサブキーとして「C1 WinForms」および「C1WinFormsDesigner」が存在しない、あるいはこれらのキー内のパス情報が不正(存在しない、パスに誤りなど)ではないでしょうか。
※レジストリキーが存在しない場合、以下の手順で再登録してください。
1) 下記レジストリキーを作成
HKEY_LOCAL_MACHINE¥SOFTWARE¥WOW6432Node¥Microsoft¥.NETFramework¥v4.0.30319¥AssemblyFoldersEx¥C1WinFormsDesigner
2) その既定値としてデザイナアセンブリファイルが存在するパスを記述
(例)C:¥Program Files (x86)¥ComponentOne¥Studio for WinForms¥Bin¥v4¥Designer
※レジストリキーの変更は重大な影響を及ぼすことがありますので、お客様の責任の下で慎重に行ってください。
・AssemblyFoldersExレジストリキー内のサブキーとして、上記以外のキーによって異なるバージョンのC1.Win.C1xxxx.4.Design.dllへの参照が含まれていることがないでしょうか。
④上記以外の可能性について
・ツールボックスのC1xxxxコンポーネント参照時の問題
(A) 「ツールボックス アイテムの選択」の一覧に旧バージョンのコンポーネントが残っていて、ツールボックスにコンポーネントを再登録する際にこれを選択したケース
(B) ツールボックス一覧内からは選択せず、[参照]ボタンをクリックして古いアセンブリを参照してしまったケース
旧文書番号
82360