"التغييرات إلى تطبيقات 64 بت غير مسموح بها" عند تصحيح الأخطاء في Visual Studio 2008

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

سؤال

أنا أستخدم Visual Studio 2008، C #. أحاول استخدام التحرير والاستمرار (تحرير التعليمات البرمجية أثناء التصحيح)، واحصل على هذا الاستثناء:

"التغييرات إلى تطبيقات 64 بت غير مسموح بها"

لماذا هذا؟ ايوجد اي عمل في هذه المنطقه؟

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

المحلول

تحرير ومتابعة غير مدعومة بتطبيقات 64 بت على مستوى CLR، لذلك لا توجد طريقة لبرنامج Visual Studio لتطبيقه أيضا.

أسهل طريقة للتغلب على هذه المشكلة هي استهداف طلبك إلى رقائق X86. سيؤدي ذلك إلى تشغيله في وضع WOW64 كعملية 32 بت وسيتمكن من ECL. يمكنك القيام بذلك عن طريق القيام بما يلي

  1. انقر بزر الماوس الأيمن فوق تطبيق .exe واختر خصائص
  2. الذهاب إلى علامة التبويب بناء
  3. تغيير مربع التحرير والسرد الهدف من النظام الأساسي إلى x86

enter image description here

نصائح أخرى

شخصيا، ما أريد فعلا هو الإيقاف-and-rection غير التحرير والاستمرار.

لذلك أنا ببساطة أطفئ أدوات / خيارات / تصحيح / تحرير واستمرار.

القيام بذلك يمنع ذلك مربع الحوار Pesky من مثالي حول ميزة مفقودة لم أرغب في المقام الأول :-)

سيتم دعم ميزة "تحرير واستمر" للحصول على رمز 64 بت ضمن Visual Studio 2013.

مزيد من المعلومات هنا.

مثل JCOPENHA قال إنه لا يوجد تحرير و- متابعة على x64 حتى الآن. الإصدار الحالي من 64 بت CLR لا يدعم ذلك. ومع ذلك، هناك عمل حولها.

يمكنك العثور عليه علة babble post..

تحتاج إلى ترجمة التجمع المدار الخاص بك مع وحدة المعالجة المركزية المستهدفة من X86. سيؤدي ذلك إلى استخدام CLR 32 بت بدلا من CLR 64 BIT.

بالنسبة لمشروع VB، انقر بزر الماوس الأيمن على المشروع وانتقل إلى خصائص / ترجمة خيارات ترجمة حسب الطلب / وحدة المعالجة المركزية المستهدفة وتعيينها إلى "X86". بالنسبة للمشروع C #، انقر بزر الماوس الأيمن فوق المشروع وانتقل إلى هدف الأسمى / Build / Platform وتعيينه إلى "X86".

آمل أن يساعد.

لم يتم تنفيذ ميزة التحرير والاستمرار ببساطة في x64 حتى الآن. لم أسمع أي تحديثات عندما يخططون للقيام بذلك بعد.

أنظر أيضا لماذا لا تحرير وتابع العمل على X64 CLR؟

كان لدي نفس رسالة الخطأ في MS Visual C # Express 2010. لقد كان مضحكا، لأن التطبيق تم تكوينه بالتأكيد كمشروع X86!

في النهاية، كان السطر التالي مفقود في ملف .csproj الخاص بي:

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'MY_CONFIG|x86'">
    ...
    <PlatformTarget>x86</PlatformTarget>
    ...
</PropertyGroup>

لا أعرف لماذا كانت مفقودة ... أعتقد أن MS Visual C # Express 2010 ليست Bugfree؛)

  1. عند ضبط وحدة المعالجة المركزية المستهدفة على "أي وحدة المعالجة المركزية"، سيتم تشغيل تطبيق 32 بت على نظام Windows 32bit، و 64 بت تطبيقا على Windows 64bit. ومع ذلك، لا يسمح Visual Studio بميزة "التحرير والاستمرار" لتطبيق 64 بت.

  2. من أجل تصحيح "بطلاقة" على آلة 64bit، يمكننا إما:

    أ) تعيين "وحدة المعالجة المركزية المستهدفة" إلى "أي وحدة المعالجة المركزية" ولكن تحقق من مربع "تفضل 32bit".

    ب) أو تعيين "وحدة المعالجة المركزية المستهدفة" إلى "x86"

مهم جدا: يتطلب كل من الخيار مربع "تمكين التحسينات" المراد معرفة.

لسوء الحظ، تحرير ومتابعة غير مدعومة على 64 بت. في الواقع، إذا حاولت استخدام "تحرير" ومتابعة عند تصحيح تطبيق 64 بت، فستحصل على رسالة الخطأ التالية: "التغييرات إلى تطبيقات 64 بت غير مسموح بها" قد لا يكون العديد من المستخدمين أن يكونوا يدركون ذلك بشكل افتراضي، عند إنشاء مشروع C # أو VB في Visual Studio 2008، يتم تعيين "النظام الأساسي" للمشروع إلى "أي وحدة المعالجة المركزية". هذا يعني أنه إذا قمت بتشغيل التطبيق الخاص بك على نظام تشغيل 32 بت، فسيتم تشغيل التطبيق الخاص بك كعملية 32 بت وبالمثل، إذا قمت بتشغيل التطبيق الخاص بك على نظام تشغيل 64 بت، فسيكون التطبيق 64 بت. نتيجة "أي وحدة المعالجة المركزية" هي أنه عند محاولة تصحيح تطبيقك على نظام تشغيل 64 بت، فلن تتمكن من استخدام ميزة التعديل والمتابعة.

ومع ذلك، هناك حلا. أثناء التطوير، يمكنك ضبط النظام الأساسي لمشروعك إلى 32 بت مما يعني أنه سيتم تشغيل تطبيقك كعملية 32 بت حتى على نظام تشغيل 64 بت. يعرف هذا باسم WOW64 أو "Windows على Windows" والذي يعني أساسا أنه يمكنك تشغيل تطبيق 32 بت على نظام تشغيل 64 بت.

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

أولا، افتح مربع الحوار "Manager Configuration Manager" من Build -> مدير التكوين. يظهر مربع حوار إدارة التكوين أدناه.

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