私のソリューションには、コントロールを定義するプロジェクトとフォーム上でこのコントロールを使用する別のプロジェクトが含まれています。私はVSデザイナでこのフォームを開こうとすると、私は次のエラーを取得する:VS 2013 Designer - 「不正な形式のプログラムを読み込もうとしました」
Could not load file or assembly 'libX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format.
libX
がコントロールを持つプロジェクト、また形を持つプロジェクトでもありません。私がソリューションを構築しようとすると、すべてが大丈夫です。フォームを表示するアプリケーションを実行すると、すべてが良好です。何かを嫌うデザイナーです。私がこれまで試してみました
もの:
- 問題をGoogleで検索したので、私はこの問題を解決するための一般的な試みを経ました。つまり、私の解決策の設定は、構成マネージャーで正しいです、そして、プロジェクトはIISの何も使用しません(したがって、32bを有効にするソリューションは適用されません)
- 別のバージョンのVS 2013 (12.0.21005.1 REL)となり、問題なく動作しました。
- VS 2013 Update 5を使用しています。Designedが正常に機能していた時から、Update 2にダウングレードしました。
- 私は助けなしに私のVSを修復しようとしました。
EDIT: 問題を示し、最小限のプロジェクトがhereを発見したことがあります。問題のあるフォームは+lib.trading\lib.trading.obj.forms.strategyParametersForm
プロジェクトにあります。
VSデザイナでフォームを開くときに私が手にエラーがtnhe以下の通りです:
すべてのヘルプははるかに高く評価され、 ダニエル
libXは、コントロールプロジェクトまたはフォームプロジェクトによって*使用されているプロジェクトですか?そして、libXは64ビットのみですか?もしそうなら、私はそれがVSがまだ* 32ビットモードでコードを実行しようとしているのではないかと思う。なぜならデザイナーを見せている間にあなたのユーザーコードの一部を実行する必要があるからだ。 –
@JonSkeet:ありがとうございました。はい、libXはコントロールプロジェクトによって参照されるプロジェクトであり、したがってフォームプロジェクトによって推移します。現在の設定は、すべてのプロジェクトがx86としてコンパイルされており、問題は解決されています。 –
コードに[DesignModeプロパティ](https://msdn.microsoft.com/en-us/library/system.componentmodel.component.designmode(v = vs.110).aspx)を使用する必要があります。コントロールがデザインモードで実行されている間は、このライブラリを使用しないようにします。それ以外は一般的には非常に悪い考えですが、設計モードでは常に32ビットモードで動作するため、動作しません。 –