Erreur Visual Studio :La tâche « GenerateResource » a échoué de manière inattendue

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

  •  08-06-2019
  •  | 
  •  

Question

Lors de la création d'une solution VS 2008 avec 19 projets, j'obtiens parfois :

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

Cela se produit généralement après que VS ait fonctionné pendant environ 4 heures ;la seule façon de compiler correctement VS est de fermer VS et de le redémarrer.

Je suis sur une machine avec 3 Go de Ram.TaskManager indique que l'ensemble de travail devenv.exe est de 578 060 Ko et que l'allocation totale de mémoire pour la machine est de 1,78 Go.Il devrait avoir suffisamment de RAM pour générer les ressources.

Était-ce utile?

La solution

J'avais l'habitude de le faire de temps en temps avec des solutions plus importantes.Ma tactique consistait à diviser la solution globale en solutions plus petites.

Vous pouvez également essayer :

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

Autres conseils

Cela ressemble à un bug.

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

Vers le bas, quelqu'un suggère d'ajouter :

<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>

à votre fichier de projet.Cela semble un peu douteux, mais ça vaut le coup.

Au cas où quelqu'un d'autre chercherait dans le futur...

Dans mon cas, il s'est avéré que j'avais un fichier resx corrompu.
J'avais augmenté mes handles GDI et l'erreur de compilation a disparu.

Mais lorsque j'ai essayé d'exécuter l'application (avec le débogueur), nous avons un écran de connexion qui charge l'écran principal.L'écran de connexion appelé l'événement "show" de l'écran principal...et l'objet principal n'a jamais été instancié - sans qu'aucune erreur ne soit générée.

J'ai rétabli le fichier resx vers un fichier précédent et tout va bien maintenant.

Visual Studio 2008, VB.Net, Windows 7

Pouvez-vous s'il vous plaît essayer d'ajouter cette propriété sous le premier PropertyGroup de votre fichier de projet ?

<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>

Faites-moi savoir si cela fonctionne.

J'ai déjà dépassé ces erreurs parfois.Tout ce que vous devez faire est de supprimer tous les fichiers du chemin obj.Après cela, nettoyez et reconstruisez votre solution et c'est fait.

La "solution propre" fonctionne très bien.Bâtiment du menu supérieur -> Nettoyer, puis construire, déboguer et publier tout fonctionne à nouveau bien.Il est également préférable de désactiver les antivirus comme AVAST pour publier et installer sans problème.Réactivez après.

TFS aime marquer les fichiers en lecture seule.supprimer le contenu de obj/x86

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top