WIL説明書(.NET)  3.1.0
画像ビューのエラーによりフォームを開けない現象

WIL 3.0 で作成された Windows フォームアプリケーションを WIL 3.1 へ移行すると、 画像ビューが貼り付けられたフォームをデザイナで開けない現象が発生します。

フォームデザイナで開くと下図のようなエラーが発生してフォームの編集が行えません。

imageview_form_error-1.png

注意:
ターゲットフレームワークが一致していない場合も類似した現象が発生します。
関連)ターゲットフレームワークの限定

原因:

原因は画像ビューのプロパティの内容をリソースから復元する処理でエラーが発生しているためです。

下図のように、画像ビュー (CFviImageView) の Display プロパティの内容をリソースから復元する際に 右辺値 (WIL 3.0 のインスタンス) を左辺の型 (WIL 3.1 の型) にキャストできない旨の例外が発生しています。

imageview_form_error-2-1.png

▽ 発生したエラー

imageview_form_error-2-2.png

対策:

フォームの XML リソースファイル (.resx 拡張子) に埋め込まれた CFviImageView の Display プロパティの内容を一旦読み込んで WIL 3.1 のインスタンスとして再度埋め込みます。 そうすると次回から前述のようなキャスト例外は発生しなくなります。

この作業は C# コンソールアプリケーションで行います。 このアプリケーションのプロジェクトは ユーザサポートセンター に問い合わせて入手してください。 下記ページの作成要領に従って作成することも可能です。

DisplayConverter の作成要領

▽ 使用方法:

DisplayConverter.exe [ProjectDir]

変換したいプロジェクトがあるディレクトリをコンソールアプリケーションの引数に指定します。 引数を省略した場合はカレントディレクトリ配下を処理します。

下記のディレクトリ構成のように複数のプロジェクトがある場合、最上位のディレクトリを指定して一括処理することも可能です。 プロジェクトの言語が混在していても問題ありません。

DisplayConverter は、指定されたディレクトリ配下の XML リソースファイル (.resx 拡張子) を探索して、 各リソースファイル内の FVIL.GDI.CFviDisplay のインスタンスを一旦デコードして再度エンコードし直します。 もし、FVIL.GDI.CFviDisplay が含まれていなければリソースファイルの変更は行いません。 変更を行った場合は、変更前のリソースファイル に .old 拡張子を付加してバックアップを残します。

▽ 実行例:

DisplayConverter.exe C:\FAST\Samples

▽ ディレクトリ構成の例:

C:\FAST\Samples
├─cs
│ └─WindowsApplicationCS
│ │ App.config
│ │ Form1.cs … フォームの主処理
│ │ Form1.Designer.cs … フォームの初期化処理
│ │ Form1.resx … リソースファイル
│ │ Form1.resx.old … バックアップファイル
│ │ Program.cs
│ │ WindowsApplicationCS.csproj
│ │ WindowsApplicationCS.sln
│ │
│ └─Properties
│ AssemblyInfo.cs
│ Resources.Designer.cs
│ Resources.resx
│ Settings.Designer.cs
│ Settings.settings
└─vb
└─WindowsApplicationVB
│ App.config
│ Form1.vb … フォームの主処理
│ Form1.Designer.vb … フォームの初期化処理
│ Form1.resx … リソースファイル
│ Form1.resx.old … バックアップファイル
│ WindowsApplicationVB.sln
│ WindowsApplicationVB.vbproj
└─My Project
Application.Designer.vb
Application.myapp
AssemblyInfo.vb
Resources.Designer.vb
Resources.resx
Settings.Designer.vb
Settings.settings

変換が失敗する場合:

下記のようなエラーが発生する場合は、本ユーティリティでは変換できません。

▽ 実行時に発生したエラー:

型 を行 519、位置 5 のデータから読み取れませんでした。型の内部構造が変更された可能性があります。
型の ISerializable を実装するか、または信頼性のより高い変換形式 (例: テキストまたはバイト配列) が可能な型コンバーターを指定してください。
変換の例外: アセンブリ 'FVILbasic, Version=3.0.0.0, Culture=neutral, PublicKeyToken=6b92ad76edadb73c]],
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' が見つかりません。

この場合は、フォームを手動で編集する必要があります。
下記ページをご参照ください。
フォームを手動で編集する方法


Documentation copyright © 2008 FAST Corporation. [B-001864]
Generated on 2024年10月10日(木) 10時07分52秒 for WIL説明書(.NET) by doxygen 1.8.11