Domanda

Quando la costruzione di un VS 2008 soluzione con 19 progetti che ho, a volte, ottenere:

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

Di solito succede dopo che il VS è stato in esecuzione per circa 4 ore;l'unico modo per ottenere VS compilare correttamente è chiudere VS, e iniziare di nuovo.

Io sono su una macchina con 3GB di Ram.TaskManager mostra la devenv.exe lavorare insieme per essere 578060K, e tutta l'allocazione di memoria per la macchina è 1.78 GB.Dovrebbe avere più di ram sufficiente per generare le risorse.

È stato utile?

Soluzione

Ho usato per colpire questa ora e di nuovo con i più grandi soluzioni.La mia tattica è stata quella di rompere la soluzione più completa in basso in più soluzioni.

Si potrebbe anche provare a:

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

Altri suggerimenti

Suona come un bug.

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

Verso il fondo, qualcuno suggerisce di aggiungere:

<GenerateResourceNeverLockTypeAssemblies>vero</GenerateResourceNeverLockTypeAssemblies>

per il tuo file di progetto.Pare dubbia, ma vale la pena un colpo.

Nel caso In cui qualcun altro è alla ricerca in futuro...

Nel mio caso, si è rivelato avevo un danneggiato il file resx.
Avevo aumentato la mia handle GDI e l'errore di compilazione sono andato via.

Ma poi quando ho provato a lanciare l'applicazione (con il debugger), Abbiamo una schermata di login che si carichi la schermata principale.La schermata di login chiamato la schermata principale di "show", un evento...e l'oggetto principale, non ha mai avuto istanziato con nessun errore viene generato.

Ho ripristinato il file resx ad una precedente e tutto è a posto ora.

Visual Studio 2008, VB.Net, Windows 7

Potete per favore prova ad aggiungere questa proprietà sotto il primo PropertyGroup in un file di progetto?

<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>

Fammi sapere se funziona.

Ho già passato da questo scarto a volte.Tutto quello che dovete fare è eliminare tutti i file obj percorso.Dopo di che pulire e ricostruire la tua soluzione e il suo fare.

"Soluzione pulita" funziona bene.Top Menu Build ->Pulire , costruire, eseguire il debug e pubblicare tutto funziona bene di nuovo.Anche antivirus come AVAST migliori disabili pubblicare e installare senza problemi.Ri-abilitazione dopo.

TFS piace per contrassegnare i file di sola Lettura.eliminare il contenuto della obj/x86

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top