Ошибка Visual Studio:Неожиданный сбой задачи “GenerateResource”

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

  •  08-06-2019
  •  | 
  •  

Вопрос

При создании решения VS 2008 с 19 проектами я иногда получаю:

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 и запустить его снова.

Я использую компьютер с 3 ГБ оперативной памяти.Диспетчер задач показывает, что рабочий набор devenv.exe равен 578060 КБ, а весь объем выделенной памяти для компьютера равен 1,78 ГБ.У него должно быть более чем достаточно оперативной памяти для генерации необходимых ресурсов.

Это было полезно?

Решение

Раньше я время от времени сталкивался с этим с помощью более масштабных решений.Моя тактика состояла в том, чтобы разбить более крупное решение на более мелкие.

Вы также могли бы попробовать:

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?форум=clr:

Попробуйте удалить файл .suo и повторно открыть решение.

Похоже на ошибку.

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

Ближе к концу кто-то предлагает добавить:

<GenerateResourceNeverLockTypeAssemblies>верно</GenerateResourceNeverLockTypeAssemblies>

в файл вашего проекта.Кажется немного сомнительным, но попробовать стоит.

На случай, если кто-то еще заглядывает в будущее...

В моем случае оказалось, что у меня был поврежден resx-файл.
Я увеличил свои дескрипторы GDI, и ошибка компиляции исчезла.

Но затем, когда я попытался запустить приложение (с помощью отладчика), У нас есть экран входа в систему, который загружает главный экран.Экран входа в систему вызвал событие "показать" на главном экране...и экземпляр основного объекта так и не был создан - без возникновения ошибки.

Я вернул файл resx к предыдущему, и теперь все в порядке.

Visual Studio 2008, VB.Net, Windows 7

Не могли бы вы, пожалуйста, попробовать добавить это свойство в первую группу свойств в вашем файле проекта?

<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>

Дайте мне знать, если это сработает.

Иногда я уже проходил мимо этой ошибки.Все, что вам нужно сделать, это удалить все файлы по пути obj.После этого очистите и перестройте ваше решение, и дело сделано.

"Чистое решение" работает нормально.Верхнее меню Build -> Clean , затем build, debug и publish снова все работает нормально.Также антивирусы, такие как AVAST, лучше отключить, чтобы публиковать и устанавливать их без проблем.Повторно включите после этого.

TFS любит помечать файлы как доступные только для чтения.удалить содержимое obj/x86

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top