Сведения о вопросе

HOLY

04:21, 18th August, 2020

Теги

Ошибка Visual Studio: неожиданно не удалось выполнить задачу "GenerateResource"

Просмотров: 558   Ответов: 8

При построении решения 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 ГБ Ram. TaskManager показывает, что рабочий набор devenv.exe равен 578060K, а все выделение памяти для машины равно 1.78GB. У него должно быть более чем достаточно ram, чтобы генерировать ресурсы.



  Сведения об ответе

lats

21:06, 1st October, 2020

От https://social.msdn.microsoft.com/Forums/vstudio/en-US/5154ef26-ccfe-44d5-a322-6804b61ac774/systemoutofmemoryexception?форум=clr :

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


  Сведения об ответе

LAST

01:17, 2nd August, 2020

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

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

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

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

Visual Studio 2008, VB.Net, Windows 7


  Сведения об ответе

SEEYOU

20:23, 10th August, 2020

Похоже на жука.

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

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

<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>

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


  Сведения об ответе

SSESION

07:29, 21st August, 2020

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

<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>

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


  Сведения об ответе

$DOLLAR

13:12, 22nd August, 2020

Я использовал для этого время от времени более крупные решения. Моя тактика состояла в том, чтобы разбить более крупное решение на более мелкие.

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

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


  Сведения об ответе

nYU

22:10, 8th August, 2020

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


  Сведения об ответе

$DOLLAR

14:27, 21st August, 2020

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


  Сведения об ответе

P_S_S

05:48, 12th August, 2020

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться