0

私のチームは、C++ を管理する Visual Studio 2005 で GUI アプリケーションを開発しました。ソースコードやプロジェクト設定を変更していなくても、デザイナでフォームを開くことができない納品物もあります。デザイナーは次のエラーを報告します。

タイプ 'System.OutOfMemoryException' の例外がスローされました。

Microsoft.VisualStudio.Design.VSDynamicTypeService.ShadowCopyAssembly(String fileName) で Microsoft.VisualStudio.Design.VSDynamicTypeService.CreateDynamicAssembly(String codeBase) で Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.get_Assembly() で Microsoft.VisualStudio.Design.VSTypeResolutionService .AssemblyEntry.Search(String fullName, String typeName, Boolean ignoreTypeCase, Assembly& assembly, String description) ...

プロジェクトを正常に再コンパイルしましたが、まだこの問題が発生しています。何か案が?

4

4 に答える 4

1

これは、私がこれらの問題をデバッグするために使用した方法です。Visual Studio の 2 番目のインスタンスを開始し、プロジェクトをロードして、プロジェクトもロードされている最初のインスタンスにアタッチします。ここで、コンストラクターとページ読み込みイベントにブレークポイントを設定し、2 番目のインスタンスでフォームにある可能性のあるカスタム ペイント イベントも設定し、最初のインスタンスでデザイナーを開こうとすると、ブレークポイントがヒットし、できるはずです。何が起こっているか見てください。

于 2008-10-02T10:21:31.137 に答える
1

関連するフォームで無限ループ (または再帰的なコントロールの作成) が発生するデザイン モード エラーが発生していると思われます。

Windowsフォームでのこの種のエラーで私を助けたのは、次のことです。

  • GUI アプリケーションの Visual Studio 2005 ソリューションを開きます。まだフォームを開かないでください
  • Visual Studio 2005 の別のインスタンスを開く
  • 2 番目のインスタンスでは、devenv.exe の最初のインスタンスをデバッガーにアタッチ ([デバッグ] -> [プロセスにアタッチ]) します。例外 ([デバッグ] -> [例外]) で、[スロー] の下のすべての例外チェックボックスがオンになっていることを確認します。
  • 最初の VS2005 インスタンスに移動し、フォームを開きます。2 番目の VS2005 インスタンスは、エラーが発生した行で停止します。
于 2008-10-02T10:23:36.437 に答える
0

大規模なマルチプロジェクト ソリューション、または非常に大規模で複雑なウィンドウ フォームを使用するプロジェクトで作業しているときに、断続的に同じ問題に遭遇しました。

Visual Studio で 2GB を超えるメモリを使用できるようにすることで、この問題を解決できました。プロセスは次のとおりです...

(注: これは、XP および Visual Studio 2005 を想定しています。Vista および/または VS2008 では若干の変更が必要になります)

Boot.ini を編集

[マイ コンピュータ] 、 [プロパティ] 、 [詳細] タブを右クリックします。[起動と回復]で[設定]をクリックします。[編集] ボタンをクリックし、[operating systems] 行の末尾に/3GBスイッチを追加します。

multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /3GB

Visual Studio を「ラージ アドレス対応」にする

Visual Studio コマンド プロンプトを実行し、IDE ディレクトリに移動します。

cd %ProgramFiles%\Microsoft Visual Studio 8\Common7\IDE

Microsoft ツールの editbin を使用して、devenv.exeを変更します。

editbin /LARGEADDRESSAWARE devenv.exe

再起動して完了です。

于 2008-10-25T04:50:00.407 に答える
0

これはロング ショットですが、デザイナーを数回続けて閉じたり開いたりしてみてください。私は C# Windows フォーム デザイナー (VS2005) で同じ種類の問題を抱えていました。

于 2008-10-02T10:19:56.867 に答える