خطأ في الاستوديو المرئي:فشلت مهمة "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 وبدء تشغيله مرة أخرى.

أنا على جهاز مع 3GB رام.يعرض TaskManager مجموعة عمل devenv.exe لتكون 578060K، وتخصيص الذاكرة بالكامل للجهاز هو 1.78 جيجابايت.يجب أن تحتوي على ذاكرة وصول عشوائي أكثر من كافية لتوليد الموارد.

هل كانت مفيدة؟

المحلول

اعتدت أن أضرب هذا بين الحين والآخر بحلول أكبر.كان تكتيكي هو تقسيم الحل الأكبر إلى حلول أصغر.

يمكنك أيضًا تجربة ما يلي:

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

نصائح أخرى

يبدو وكأنه خطأ.

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

نحو الأسفل، يقترح أحدهم إضافة:

<GenerateResourceNeverLockTypeAssemblies>صحيح</GenerateResourceNeverLockTypeAssemblies>

إلى ملف المشروع الخاص بك.يبدو الأمر مشكوكًا فيه نوعًا ما، ولكنه يستحق المحاولة.

في حال كان هناك شخص آخر يبحث في المستقبل...

في حالتي، تبين أن لدي ملف resx تالفًا.
لقد قمت بزيادة مقابض GDI الخاصة بي واختفى خطأ الترجمة.

ولكن عندما حاولت تشغيل التطبيق (مع مصحح الأخطاء) ، لدينا شاشة تسجيل دخول تعمل على تحميل الشاشة الرئيسية.تسمى شاشة تسجيل الدخول بحدث "العرض" على الشاشة الرئيسية...ولم يتم إنشاء مثيل للكائن الرئيسي مطلقًا - دون ظهور أي خطأ.

لقد قمت بإرجاع ملف resx إلى ملف سابق وكل شيء على ما يرام الآن.

فيجوال ستوديو 2008، VB.Net، ويندوز 7

هل يمكنك من فضلك محاولة إضافة هذه الخاصية ضمن PropertyGroup الأولى في ملف المشروع الخاص بك؟

<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>

دعنا نذهب للعمل.

لقد مررت بالفعل بهذه الأخطاء في بعض الأحيان.كل ما عليك فعله هو حذف جميع الملفات الموجودة في مسار obj.بعد ذلك، قم بتنظيف وإعادة بناء الحل الخاص بك، وقد انتهى الأمر.

"الحل النظيف" يعمل بشكل جيد.Top Menu Build -> Clean ، ثم بناء ، تصحيح ونشر كل شيء يعمل بشكل جيد مرة أخرى.من الأفضل أيضًا تعطيل برامج مكافحة الفيروسات مثل AVAST للنشر والتثبيت بدون مشاكل.إعادة التمكين بعد.

يحب TFS وضع علامة على الملفات للقراءة فقط.احذف محتويات obj/x86

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top