Visual Studio エラー:「GenerateResource」タスクが予期せず失敗しました

StackOverflow https://stackoverflow.com/questions/15034

  •  08-06-2019
  •  | 
  •  

質問

19 のプロジェクトで VS 2008 ソリューションを構築すると、次のようなメッセージが表示されることがあります。

The "GenerateResource" task failed unexpectedly.
System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
   at System.IO.MemoryStream.set_Capacity(Int32 value)
   at System.IO.MemoryStream.EnsureCapacity(Int32 value)
   at System.IO.MemoryStream.WriteByte(Byte value)
   at System.IO.BinaryWriter.Write(Byte value)
   at System.Resources.ResourceWriter.Write7BitEncodedInt(BinaryWriter store, Int32 value)
   at System.Resources.ResourceWriter.Generate()
   at System.Resources.ResourceWriter.Dispose(Boolean disposing)
   at System.Resources.ResourceWriter.Close()
   at Microsoft.Build.Tasks.ProcessResourceFiles.WriteResources(IResourceWriter writer)
   at Microsoft.Build.Tasks.ProcessResourceFiles.WriteResources(String filename)
   at Microsoft.Build.Tasks.ProcessResourceFiles.ProcessFile(String inFile, String outFile)
   at Microsoft.Build.Tasks.ProcessResourceFiles.Run(TaskLoggingHelper log, ITaskItem[] assemblyFilesList, ArrayList inputs, ArrayList outputs, Boolean sourcePath, String language, String namespacename, String resourcesNamespace, String filename, String classname, Boolean publicClass)
   at Microsoft.Build.Tasks.GenerateResource.Execute()
   at Microsoft.Build.BuildEngine.TaskEngine.ExecuteInstantiatedTask(EngineProxy engineProxy, ItemBucket bucket, TaskExecutionMode howToExecuteTask, ITask task, Boolean& taskResult)   C:\Windows\Microsoft.NET\Framework\v3.5

通常、VS が約 4 時間実行された後に発生します。VS を適切にコンパイルする唯一の方法は、VS を終了し、再度起動することです。

私は 3GB Ram を搭載したマシンを使用しています。TaskManager は、devenv.exe ワーキング セットが 578060K であり、マシンの全体のメモリ割り当てが 1.78GB であることを示しています。リソースを生成するのに十分な RAM が必要です。

役に立ちましたか?

解決

以前は、より大きなソリューションでこれに何度も遭遇しました。私の戦術は、より大きなソリューションをより小さなソリューションに分割することでした。

次のことも試してみてください:

http://stevenharman.net/blog/archive/2008/04/29/hacking-visual-studio-to-use-more-than-2gigabytes-of-memory.aspx

他のヒント

から https://social.msdn.microsoft.com/Forums/vstudio/en-US/5154ef26-ccfe-44d5-a322-6804b61ac774/systemoutofmemoryException?forum=clr:

.suo ファイルを削除して、ソリューションを再度開いてみます。

バグのようですね。

http://www.codeprof.com/dev-archive/66/6-27-664019.shtm

最後の方に、誰かが次のことを追加することを提案しています。

<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>

プロジェクトファイルに。ちょっと疑わしいように思えますが、試してみる価値はあります。

将来誰かが探している場合に備えて...

私の場合、resx ファイルが破損していることが判明しました。
GDI ハンドルを増やしたところ、コンパイル エラーはなくなりました。

しかし、その後、アプリを実行しようとしたとき(デバッガー付き)、メイン画面をロードするログイン画面があります。ログイン画面はメイン画面の「show」イベントを呼び出します...そしてメインオブジェクトはインスタンス化されず、エラーも発生しませんでした。

resx ファイルを以前のファイルに戻しましたが、現在はすべて問題ありません。

Visual Studio 2008、VB.Net、Windows 7

プロジェクト ファイルの最初の PropertyGroup の下にこのプロパティを追加してみていただけますか?

<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>

それがうまくいくかどうか教えてください。

私はすでにこのエラーを時々通り過ぎています。必要なのは、obj パス内のすべてのファイルを削除することだけです。その後、ソリューションをクリーンにして再構築すれば完了です。

「クリーンソリューション」は正常に機能します。トップメニュービルド - >クリーン、ビルド、デバッグ、公開はすべて再度正常に動作します。また、AVAST などのウイルス対策ソフトウェアを無効にすると、問題なく公開およびインストールできるようになります。その後、再度有効にします。

TFS はファイルを読み取り専用としてマークすることを好みます。obj/x86 の内容を削除します

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top