Pregunta

Al crear una solución VS 2008 con 19 proyectos, a veces obtengo:

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

Generalmente ocurre después de que VS ha estado funcionando durante aproximadamente 4 horas;La única forma de hacer que VS se compile correctamente es cerrar VS y comenzar de nuevo.

Estoy en una máquina con 3 GB de RAM.TaskManager muestra que el conjunto de trabajo devenv.exe es 578060K y la asignación de memoria total para la máquina es de 1,78 GB.Debería tener RAM más que suficiente para generar los recursos.

¿Fue útil?

Solución

Solía ​​​​resolver esto de vez en cuando con soluciones más amplias.Mi táctica fue dividir la solución más grande en soluciones más pequeñas.

También puedes probar:

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

Otros consejos

Suena como un error.

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

Hacia abajo, alguien sugiere agregar:

<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>

a su archivo de proyecto.Parece un poco dudoso, pero vale la pena intentarlo.

En caso de que alguien más esté mirando en el futuro...

En mi caso, resultó que tenía un archivo resx dañado.
Aumenté mis identificadores de GDI y el error de compilación desapareció.

Pero luego, cuando intenté ejecutar la aplicación (con el depurador), tenemos una pantalla de inicio de sesión que carga la pantalla principal.La pantalla de inicio de sesión llamó evento "mostrar" de la pantalla principal...y nunca se creó una instancia del objeto principal, sin que se generara ningún error.

Revertí el archivo resx a uno anterior y ahora todo está bien.

Visual Studio 2008, VB.Net, Windows 7

¿Puede intentar agregar esta propiedad en el primer grupo de propiedades en su archivo de proyecto?

<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>

Déjame saber si eso funciona.

A veces ya he pasado por estos errores.Todo lo que debes hacer es eliminar todos los archivos en la ruta obj.Después de eso, limpie y reconstruya su solución y listo.

La "solución limpia" funciona bien.Construcción del menú superior -> Limpiar, luego construir, depurar y publicar todo el trabajo bien nuevamente.También es mejor desactivar antivirus como AVAST para publicar e instalar sin problemas.Vuelva a habilitar después.

A TFS le gusta marcar archivos como de solo lectura.eliminar el contenido de obj/x86

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top