2016-10-14 4 views
5

私のソリューションには、コントロールを定義するプロジェクトとフォーム上でこのコントロールを使用する別のプロジェクトが含まれています。私は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以下の通りです: enter image description here

すべてのヘルプははるかに高く評価され、 ダニエル

+0

libXは、コントロールプロジェクトまたはフォームプロジェクトによって*使用されているプロジェクトですか?そして、libXは64ビットのみですか?もしそうなら、私はそれがVSがまだ* 32ビットモードでコードを実行しようとしているのではないかと思う。なぜならデザイナーを見せている間にあなたのユーザーコードの一部を実行する必要があるからだ。 –

+0

@JonSkeet:ありがとうございました。はい、libXはコントロールプロジェクトによって参照されるプロジェクトであり、したがってフォームプロジェクトによって推移します。現在の設定は、すべてのプロジェクトがx86としてコンパイルされており、問題は解決されています。 –

+0

コードに[DesignModeプロパティ](https://msdn.microsoft.com/en-us/library/system.componentmodel.component.designmode(v = vs.110).aspx)を使用する必要があります。コントロールがデザインモードで実行されている間は、このライブラリを使用しないようにします。それ以外は一般的には非常に悪い考えですが、設計モードでは常に32ビットモードで動作するため、動作しません。 –

答えて

0

試みは間違ったフォーマットのプログラムをロードしました。 TargetCPU = "Any CPU"で64ビットOSにインストールされたVisual Studioでアプリケーションが実行される場合、エラーメッセージ "不正な形式のプログラムをロードしようとしました。 (HRESULTからの例外:0x8007000В)」が発生する可能性があります。

+0

ありがとうございますが、AnyCpu、x86またはx64に関係なくエラーが発生します。 –

+0

エラーコードを教えていただけますか? – Ayan

+0

特別なエラーコードはありません。デザイナを実行しようとすると例外があります。私は例外messageBoxを含めるように質問を編集しました。 –

関連する問題