سؤال

أتساءل عما إذا كان لدى أي شخص حل لهذا الخطأ لعام 2010. لديّ مشروع تم بناؤه بشكل جيد في Visual Studio 2008 لن يبني في عام 2010 لأن Visual Studio يتمسك به على DLL بعد تشغيل التطبيق فقط إذا كانت نافذة المصمم مفتوحة. لقد قمت بإنشاء مشروع خفيف الوزن حقًا يوضح هذه المشكلة. إذا قمت بإنشاء تطبيق ، فقم بإنشاء DLL LIB. ضع نموذجًا واحدًا في DLL ، وافتح النموذج في عرض التصميم ثم قم بتشغيل التطبيق. سيتم تشغيله بشكل جيد ، ثم أغلق التطبيق ، وانتقل إلى عرض الكود الخاص بالنموذج في عرض التصميم ، وتغيير الكود (أنا فقط أعيد تسمية متغير واحد) ثم حاول إعادة ترجمة ما يلي:

خطأ 1 غير قادر على نسخ ملف "obj debug customlib.dll" إلى "build debug customlib.dll". لا يمكن للعملية الوصول إلى ملف "build debug customlib.dll" لأنه يتم استخدامه بواسطة عملية أخرى.

إذا قمت بتشغيل Explorer Process والبحث عن DLL ، فإن العملية الوحيدة التي تحمل DLL هي Devenv.exe !!!

لقد فعلت الكثير من البحث عن هذه المشكلة ووجدت مشكلات مماثلة مع الإصدارات القديمة من Dev Studio حيث كان الناس قادرين على فقط أضف خطوة مسبقة لنقل DLL المقفل إلى اسم آخر (.locked) وبناء. حسنًا ، هذا يعمل في المرة الأولى ، ولكن في المرة القادمة التي تعمل فيها ، قم بتحريرك مغلقًا من كل من DLL الحالي والواحد الذي انتقلت إليه. ، لن ينجح هذا بالنسبة لي (لا أريد أن ينمو حجم دليل التصحيح الخاص بي مع الملفات التي لا يتم حذفها أبدًا.)

لقد وجدت حلًا واحدًا فقط ، وإذا كنت في هذا القارب نفسه ، فهذا ما يجب أن أفعله لتحريره وتشغيله. أتأكد من إغلاق كل نافذة عرض تصميم قبل أن أدير مشروعي في The Debugger. إذا قمت بإغلاق جميع طريقة عرض التصميم المفتوح Windows Devenv.exe ، فلن يحتفظ DLL.

هل لدى أي شخص حل أفضل لهذه المشكلة؟

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

المحلول

لست متأكدًا مما إذا كان هذا سيعمل من أجلك أم لا ، ولكن هذا السؤال المشابه إذا كان لديك هذا الخط في AssemblyInfo.cs:

[assembly: AssemblyVersion("2.0.*")]

تغييره إلى:

[assembly: AssemblyVersion("2.0.0.0")]

سوف يحل هذا هو.

إضافة Visual Studio "vScommands"تدعي أن لديها حلًا لهذه المشكلة. لم أختبرها بعد ، لكنها تدعي أيضًا أن لديها تعقب سمعة stackoverflow في الجهة التي تثير اهتمامي :)

يبدو أن "المصمم المقرب قبل تصحيح الأخطاء" يعمل من أجلي (حتى الآن) ، وأنا ممتن للغاية. لقد بدأت في الوصول إلى المسرح الذي أمضيته جزءًا كبيرًا من يومي في سير العمل التالي ...

  1. F5

  2. بصوت عال

  3. البديل F4

  4. فوز 3

  5. ينتظر بفارغ الصبر ...

  6. F5

نصائح أخرى

لقد واجهت نفس المشكلات لفترة طويلة ثم اختفت فجأة. أدركت أن مصدر المشكلات هو تهيئة التعليمات البرمجية في مُنشئات خدمات WCF وعناصر التحكم في WPF. بعد تنظيف البنائين من أي تبعيات إلى تجميعات أخرى ، كان كل شيء على ما يرام.

لذا فإن اقتراحي هو: تنظيف مُنشئاتك.

في WPF ، من الممكن أن يكون الإدراج:

if (DesignerProperties.GetIsInDesignMode(this)) return;

أو ما شابه سيكون له نفس التأثير.

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