Frage

Beim Bau einer VS 2008-Lösung mit 19 Projekten, die ich manchmal bekomme:

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

In der Regel geschieht nach der VS wurde laufen für über 4 Stunden;der einzige Weg, um VS zu kompilieren richtig zu schließen, aus VS und starten es erneut.

Ich bin auf einem Rechner mit 3GB Ram.TaskManager zeigt die devenv.exe arbeiten eingestellt werden 578060K, und die gesamte Speicherzuweisung für die Maschine ist 1,78 GB.Es sollte mehr als genug ram zum generieren der Ressourcen.

War es hilfreich?

Lösung

Ich verwendet, um hit, diese hin und wieder mit größeren Lösungen.Meine Taktik war, um zu brechen die größere Lösung in kleinere Lösungen.

Sie könnten auch versuchen:

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

Andere Tipps

Klingt wie ein bug.

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

In Richtung der Boden, jemand schlägt vor, hinzufügen:

<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>

um Ihr Projekt Datei.Scheint irgendwie fragwürdig, aber einen Versuch Wert.

In den Fall, dass jemand anderes schaut in die Zukunft...

In meinem Fall stellte sich heraus, ich hatte eine beschädigte resx-Datei.
Ich habe zugenommen, meine GDI-handles und die compile-Fehler ging Weg.

Aber dann, als ich versuchte, führen Sie die app (mit debugger), Wir haben einen login-Bildschirm, lädt die Haupt-Bildschirm.Der login-Bildschirm aufgerufen, der Haupt-Bildschirm die "show" Veranstaltung...und die Hauptsache nie instanziert, und kein Fehler wird ausgelöst.

Ich besann sich die resx-Datei zu einem vorherigen, und alles ist jetzt gut.

Visual Studio 2008, VB.Net Windows 7

Können Sie bitte versuchen, das hinzufügen dieser Eigenschaft unter den ersten PropertyGroup in Ihrer project-Datei?

<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>

Lassen Sie mich wissen, wenn das funktioniert.

Ich habe bereits bestanden, die durch diese Fehler manchmal.Alles, was Sie tun müssen, ist zu löschen Sie alle Dateien im obj-Pfad.Nach reinigen und neu erstellen Ihre Lösung und Ihre getan.

"Saubere Lösung" gut funktioniert.Top-Menü Build ->Clean , dann build, debug-und alle veröffentlichen arbeiten wieder gut.Auch Antiviren-wie AVAST beste deaktiviert zu veröffentlichen und installieren störungsfrei.Re-aktivieren nach.

TFS mag, um Dateien zu markieren, als Nur zu Lesen.löschen Sie den Inhalt des obj/x86

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top