ভিজ্যুয়াল স্টুডিও 2010-এ "অভিব্যক্তির মূল্যায়ন করতে পারে না কারণ বর্তমান পদ্ধতির কোডটি অনুকূলিত হয়েছে"


153

আমি ডিবাগ মোডে ভিজ্যুয়াল স্টুডিও 2010 ব্যবহার করছি এবং আমি "অপ্টিমাইজ কোড" চেক না করে রেখেছি। আমি ডিবাগারে কোনও পরিবর্তনশীল তাত্ক্ষণিকভাবে দেখতে (বা হভার) করতে পারি না। আমি এই ত্রুটিটি পেয়েছি "বর্তমান পদ্ধতির কোডটি অনুকূলিত হয়েছে" বলে অভিব্যক্তি মূল্যায়ন করতে পারছি না।

এমনকি একটি লাইন যেমন: int i = -3, আমি উপর নজর রাখছি, আমি "স্থানীয় বা আর্গুমেন্ট 'i' এর মান অর্জন করতে পারি না কারণ এটি এই নির্দেশিকার পয়েন্টারে পাওয়া যায় না, সম্ভবত এটি দূরে অপ্টিমাইজ করা হয়েছে বলে।"

একই লিঙ্কে উল্লেখ করা এই লিঙ্কটি প্রয়োগ হয় বলে মনে হয় না।

আমি কি অনুপস্থিত একটি সেটিং আছে?


4
torulflundgren.blogspot.com.au/2010/03/… এটি এর জন্য আমি খুঁজে পাওয়া সেরা সমাধান। আমি ভিসুয়াল স্টুডিও 2013 এ এই পরীক্ষা কাজ ....
Dulanjana Wickramatantri

উত্তর:


167

প্রকল্পটি ডিবাগ মোডে থাকা অবস্থায়, সমাধানটি হয়নি। আমি যখন এটি পরিবর্তন করেছি, এটি কাজ করেছিল।


9
আমার এই সমস্যাটি ভিএস ২০১২-এ ছিল, তবে সমাধান এবং সমস্ত প্রকল্পগুলি কোনও অপ্টিমাইজেশন ছাড়াই ডিবাগে সেট করা হয়েছিল। আমি সমাধান পরিষ্কার / পুনর্নির্মাণ এটি আমার জন্য স্থির করে।
সর্প

20
সুতরাং ... আপনি কীভাবে নন-ডিবাগ মোডে সমাধান সেট করবেন?
ব্যবহারকারী 1431072

ব্যবহারকারী 1431072 - আপনি নিজের সমাধান বা প্রকল্পে ডান ক্লিক করুন এবং সম্পত্তি চয়ন করুন, তারপরে আপনি এটিকে ডিবাগ মোড হিসাবে সেট করতে পারেন
ইয়েগ্রাফ আন্দ্রেয়েভিচ ঝিভাগো

48

আমি ভিএস ২০১০ ব্যবহার করার সময় আমার এই সমস্যাটি ছিল My আমার সমাধান কনফিগারেশনটি (ডিবাগ) নির্বাচন করেছে has আমি প্রকল্পের বৈশিষ্ট্যগুলির অধীনে অনুকূলিতকরণ কোড সম্পত্তিটি পরীক্ষা করে এটি সমাধান করেছি। প্রকল্প (ডান ক্লিক করুন) => বৈশিষ্ট্য => বিল্ড (ট্যাব) => অপ্টিমাইজ কোডটি চেক করুন


29

দেখে মনে হচ্ছে আপনি অপটিমাইজড / রিলিজ বিল্ডটি ডিবাগ করছেন, অপটিমাইজড বক্সটি চেক না করেও। আপনি যে জিনিসগুলি চেষ্টা করতে পারেন তা হ'ল:

  • আপনার সমাধান ফাইলটির সম্পূর্ণ পুনর্নির্মাণ করুন (সমাধানটিতে ডান ক্লিক করুন এবং পুনরায় বিল্ড নির্বাচন করুন)
  • ডিবাগিংয়ের সময় মডিউলগুলির উইন্ডোটি খুলুন (ডিবাগ -> উইন্ডোজ -> মডিউল) এবং লোডযুক্ত মডিউলগুলির তালিকায় আপনার সমাবেশটি সন্ধান করুন। আপনার লোড করা সমাবেশের বিপরীতে তালিকাভুক্ত পাথটি যা আপনি প্রত্যাশা করেছেন তা হ'ল এবং ফাইলটির পরিবর্তিত টাইমস্ট্যাম্পটি নির্দেশ করে যে সমাবেশটি আসলে পুনর্নির্মাণ করা হয়েছিল।
  • মডিউল উইন্ডোতে আপনাকে বোঝানো উচিত যে লোড হওয়া মডিউলটি অপ্টিমাইজড রয়েছে কি না - মডিউলগুলির উইন্ডোটি এটি অনুকূলিত নয় বলে নির্দেশ করে।

আপনি যদি ডিবাগ -> উইন্ডোজ মেনুতে মডিউল মেনু আইটেমটি দেখতে না পান তবে আপনাকে এটি "কাস্টমাইজ করুন ..." মেনুতে যুক্ত করতে হতে পারে।


2
সমাধান পুনর্নির্মাণ করা হয়। মডিউল উইন্ডো দেখায় যে সমাবেশটি অনুকূলিত হয়েছে। আমি চেকবাক্সটি অপরিশোধিত করেছি যাতে আমি কেন জানি না কেন সমাবেশ সর্বদা অনুকূলিত হয়। সমাধানটির একটি ওয়েব প্রকল্প রয়েছে তবে আমি যে কোডটি দেখছি তাতে ডিবাগ মোডে একটি শ্রেণিকালীন গ্রন্থাগার প্রকল্প রয়েছে।
টনি_হেনরিচ

@ টনি - নির্বোধ প্রশ্ন, কিন্তু ক্লাস লাইব্রেরিতে কি "অপ্টিমাইজড" চেকবক্সটি ডি-সিলেক্ট করা আছে?
জাস্টিন

হ্যাঁ. আমি আমার প্রশ্নে এই ঘটনাটি উল্লেখ করেছি। আমি ইতিমধ্যে আমার নিজের প্রশ্নের উত্তর দিয়েছি।
টনি_েনরিচ

1
আমার Project.Webঅপটিমাইজেশনটি অনির্বাচিত হয়েছে তবুও এটি এখনও এর অপ্টিমাইজড হিসাবে দেখায় যখন আমি এর Debug > Modules
সমাবেশটি দেখি

ডিবিগিং তথ্য আপডেট করতে ভিএসকে বাধ্য করার একমাত্র উপায় হ'ল মডিউলটির অ্যাসেম্বলি সংস্করণ বৃদ্ধি করা যা এখনও অপ্টিমাইজড হিসাবে বিবেচিত হয়েছিল যদিও বিকল্পটি চেক করা হয়নি।
আলফানচোক

14

ভিএস ২০১৩-তে যান: সরঞ্জামগুলি -> বিকল্পগুলি -> ডিবাগিং -> সাধারণ করুন এবং 'পরিচালিত সামঞ্জস্যতা মোড ব্যবহার করুন' সক্ষম করুন। এটি নতুন ফাংশন মূল্যায়ন আচরণ অক্ষম করে।


ধন্যবাদ! দেওয়া অন্যান্য সমাধানগুলির মধ্যে এটি আমার জন্য গুরুত্বপূর্ণ। আশ্চর্যজনক জিনিসটি হঠাৎ ঘটেছিল, আমি কী কারণে এটি পরিবর্তিত হয়েছিল তা অবাক করি।
স্কুইড 808

10

ডিবাগ মোডে চালানোর চেষ্টা করুন you আপনি যদি মুক্তির মোডে চালাচ্ছেন তবে আপনি এই বার্তাটি পাবেন।


5
দিনের মতোই প্রশ্নটি বলছে, "আমি ডিবাগ মোডে ভিজ্যুয়াল স্টুডিও 2010 ব্যবহার করছি এবং আমি" অপ্টিমাইজ কোড "চেক না করে রেখেছি" "... আপনার এই উত্তর-উত্তর মোছা উচিত।
জিম বাল্টার

সিরিয়াসলি। তিনি এই প্রশ্নে বলেছেন যে তিনি ডিবাগে চলছে। আমি কেন পাই না? এই উত্তরটি সম্ভাব্য রেজোলিউশনগুলিকে দূষিত করছে
জন দেমেট্রিও

1
এফডব্লিউআইডাব্লু, আপনি যখন এই ত্রুটি বার্তাটি অনুসন্ধান করেন তখন এই প্রশ্নটি গুগলে অত্যন্ত উচ্চতর হয়। এই উত্তরটি আমার পক্ষে সঠিক ছিল (আমি বুঝতে পারি নি যে আমি প্রকাশের মোডে আছি)।
নাট বারবেটিনি

তার একাধিক সমাবেশ থাকতে পারে এবং কনফিগারেশন ম্যানেজারে তিনি যে অ্যাসেম্বলিটি ডিবাগ করছেন সেটিকে মুক্তি বা স্টেচ সেট করতে পারেন।
madoxdev

8

আমার পরিস্থিতি উপরের কোনও উত্তর দ্বারা আবৃত হয়নি। আমি নিম্নলিখিতটি পেয়েছি: থ্রেডিংয়ের উপর এমএসডিএন নিবন্ধ যা ব্যাখ্যা করে যে কিছু আদিম নেটিভ থ্রেডিং ক্রিয়াকলাপে আটকে গেলে, ডিবাগারটি ডেটা অ্যাক্সেস করতে পারে না। উদাহরণস্বরূপ, যখন কোনও থ্রেড টাস্ক.ওয়েট () এ বসে থাকে, তখন এটি উঠে আসে।


8

আমারও একই সমস্যা ছিল। তবে আমার ক্ষেত্রে, Debuggableবৈশিষ্ট্যটি AssemblyInfo.csআমার প্রকল্পের ফাইলটিতে কঠোরভাবে কোড করা হয়েছিল এবং এর জন্য সংকলন দ্বারা লিখিত হয়নি (ওভার)। এটি Debuggableবৈশিষ্ট্যটি উল্লেখ করে রেখাটি সরিয়ে দেওয়ার পরে কাজ করে ।


8

আমার জন্য এটি VS2017 এবং VS2019 এ ঘটছিল। আমি "মডিউল লোডের উপর চাপিত জেআইটি অপ্টিমাইজেশন" বিকল্পটি নির্বাচন করার পরে এটি হওয়া বন্ধ হয়ে যায়।

এখানে চিত্র বর্ণনা লিখুন


+1, এটিই আমার সমস্যার কারণ ছিল। "ডিবাগ" দিয়ে কনফিগারেশন শেষ হওয়ার সাথে সাথে এক্সএমএলটিতে আমি অনুকূলিত হয়েছি বলে ভিএসএস আসলে সিএসপ্রোজ বিকল্পগুলি বুঝতে খুব ভাল বলে মনে হয় না। এমএসবিল্ডকে সরাসরি কল করার সময় এটি ঠিকঠাক কাজ করে তবে ভিসিতে নিজেই ঠিক সঠিক নয়।
দ্য বিয়ার্ডেডকুইক

5

ভিএস ২০০৮-এ আমারও একই সমস্যা ছিল। আমার ক্ষেত্রে এটি সমাধান-পুনর্নির্মাণের মাধ্যমে সমাধান করা হয়েছিল।


4

@ ক্র্যাগেন ছাড়াও উল্লেখ করেছেন, আপনি যদি কোনও ওয়েব প্রকল্পটি ডিবাগ করেন

ভিজ্যুয়াল স্টুডিওটি বন্ধ করুন এবং সি: \ উইন্ডোজ \ মাইক্রোসফ্ট.নেট \ ফ্রেমওয়ার্ক \ v2.0.50727 \ অস্থায়ী এএসপি.এনইটি ফাইলগুলি মুছে ফেলার চেষ্টা করুন


সমাধানটির একটি ওয়েব প্রকল্প রয়েছে তবে কোডটি ক্লাস লাইব্রেরি প্রকল্পে রয়েছে। আমি অস্থায়ী ফাইলগুলি অনেকবার মুছে ফেলেছি।
টনি_হেনরিচ

4

আর একটি জিনিস যা আপনি করতে পারেন তা হ'ল, ডেল হিসাবে একই নামে একটি ফাইল তৈরি করুন যা অপ্টিমাইজ করা হয়েছে তবে ইনআই এক্সটেনশন সহ এবং এতে নিম্নলিখিতটি যুক্ত করুন:

[। নেট ফ্রেমওয়ার্ক ডিবাগিং নিয়ন্ত্রণ]
জেনারেট
ট্র্যাকিংইনফো = 1 মঞ্জুর করুন অপ্টিমাইজ = 0

এটি জেআইটিকে বলবে আপনার ভেরিয়েবলগুলি অপ্টিমাইজ না করতে।

মনে রাখবেন যে আপনার এখনও পিডিবি দরকার, তাই আপনি এরকম কিছু শেষ করবেন: yourDll.dll yourDll.pdb yourDll.ini

এটি আপনার দৃশ্যে বিশেষত ভাল কাজ করে যখন আপনার ডিবাগ বিকল্পের সাথে ঘরের পুনরায় উত্পন্ন করার অ্যাক্সেস নেই।

http://www.hanselman.com/blog/DebugVsReleaseTheBestOfBothWorlds.aspx


4

কোনও বিবৃতি জারি করার পরে আপনি যখন " এক্সপ্রেশনটির মূল্যায়ন করতে পারবেন না কারণ বর্তমান পদ্ধতির কোডটি অনুকূলিত হয়েছে " বার্তাটি দেখেন Debugger.Break()তবে দয়া করে নিশ্চিত হয়ে নিন যে আপনি পরবর্তী বিবৃতিতে যাওয়ার জন্য F10 চাপছেন।

একবার পরবর্তী বিবৃতিতে পদক্ষেপ নেওয়ার পরে এবং ধরে নিই যে আপনি একটি ডিবাগ বিল্ড চালাচ্ছেন, এই বার্তাটি অদৃশ্য হয়ে যাবে।


2
ঐটা এটা ছিল. আমি উপরের সমস্ত সমাধান চেষ্টা করেছি এবং এই ক্ষুদ্র জিনিসটি কার্যকর হয়েছে .. এটি ভাগ করে নেওয়ার জন্য আপনাকে ধন্যবাদ, আমি এই তুচ্ছ ইঙ্গিতটি না দেখে আরও কয়েক ঘন্টা নষ্ট করতাম ..
ক্রিজিসটফ স্কিনটার

Nop। এটা কাজ করছে না. Vs17 এখনও মনে করে আমি একটি রিলিজ বিল্ডটি ডিবাগ করছি
জন

3

"অপ্টিমাইজ কোড" সম্পত্তিটি যাচাই করা হয়েছে এমন সমস্যা সম্পর্কে এখনও কোডটি এখনও অপ্টিমাইজড হিসাবে সংকলন করছে: সবকিছুর চেষ্টা করার পরে অবশেষে আমাকে কীভাবে সহায়তা করেছিল একই সেটিংস পৃষ্ঠায় "প্রকল্প পরিচালনা বৈশিষ্ট্য - ডিবাগ)" বিকাশবিহীন কোড ডিবাগিং সক্ষম করুন "চেকবক্সটি পরীক্ষা করা হয়েছিল। এটি কোড অপ্টিমাইজেশনের সাথে সরাসরি সম্পর্কিত নয়, তবে এই সক্ষম করার সাথে ভিএস আর আমার লাইব্রেরিটিকে অনুকূলিত করে না এবং আমি ডিবাগ করতে পারি।


3

একটি টেস্টবেড ওয়েব অ্যাপ্লিকেশন থেকে একটি ক্লাস লাইব্রেরি ডিবাগ করার সময় আমার একই সমস্যা ছিল। আমি টেস্টবেডে রিলিজ সংস্করণটি উল্লেখ করছিলাম এবং এটি ক্লাস লাইব্রেরির বৈশিষ্ট্যগুলিতে অনুকূলিত হওয়ার জন্য সেট করা হয়েছিল।

ক্লাস লাইব্রেরির বৈশিষ্ট্যে প্রকাশের সংস্করণটির জন্য অপ্টিমাইজ কোড চেকবক্সটি অন-টিক করা, আমি যখন এটি লিখছি তখনই সমস্যার সমাধান হয়েছে।


ধন্যবাদ যে এটি করেছে। প্রতিটি প্রকল্পে ডান ক্লিক করে এবং তাদের "সম্পত্তি" মেনুয়ার বিকল্পটি নির্বাচন করে তারপরে "বিল্ড" ট্যাবটি নির্বাচন করে আপনি এই চেকবক্সটি সন্ধান করতে পারেন।
goamn

3

আমি বুঝতে পারি এটি পরবর্তী উত্তর, তবে আমি এই সমস্যাটির সমাধানের একটি উপায়ের জন্য অন্য একটি রেফারেন্স পেয়েছি যা ভবিষ্যতে অন্যদের সহায়তা করতে পারে। এই ওয়েব পৃষ্ঠাটি পরিবেশের পরিবর্তনশীল (COMPLUS_ZapDisable = 1) নির্ধারণ করে যা অপ্টিমাইজেশন প্রতিরোধ করে, কমপক্ষে এটি আমার জন্য করেছিল! (ভিজ্যুয়াল স্টুডিও হোস্টিং প্রক্রিয়াটি অক্ষম করার দ্বিতীয় অংশটি ভুলে যাবেন না)) আমার ক্ষেত্রে এটি সম্ভবত আরও প্রাসঙ্গিক হতে পারে কারণ আমি প্রতীক সার্ভারের মাধ্যমে একটি বাহ্যিক ডিএলএল ডিবাগ করছি, তবে আমি নিশ্চিত নই।


3

আমার কাছে এফ # প্রকল্পের সাথে এই সমস্যাটি ছিল যা ভিজ্যুয়াল স্টুডিও এবং মনোোডিভোল্ফের মধ্যে এখানে এবং সেখানে ছিল, সম্ভবত পরবর্তীটির উত্পন্ন (আমি ভুলে যাচ্ছি)। ভিএস-তে, অপ্টিমাইজ বাক্সটি চেক করা হয়নি, তবুও অপ্টিমাইজেশানটি অবশ্যই ডিবাগারের সাথে সম্পর্কিত বলে মনে হয়েছে।

প্রকল্পের ফাইলের এক্সএমএলকে একটি স্বাস্থ্যকরর সাথে তুলনা করার পরে, সমস্যাটি সুস্পষ্ট ছিল: স্বাস্থ্যকর প্রকল্পটির একটি স্পষ্ট <optimize>false</optimize>লাইন ছিল, যেখানে খারাপটি এটি সম্পূর্ণরূপে অনুপস্থিত ছিল। ভিএস স্পষ্টতই তার অনুপস্থিতি থেকে অনুমান করছিল যে অপ্টিমাইজেশন অক্ষম ছিল, যখন সংকলকটি তার বিপরীতে করছিল।

সমাধানটি ছিল এই সম্পত্তিটিকে প্রকল্পের ফাইলটিতে যুক্ত করা এবং পুনরায় লোড করা।


1

আমি ভিজ্যুয়াল স্টুডিও 2017 এ স্থানান্তরিত হওয়ার পরে আমি এই বার্তাটি পেতে শুরু করেছি I এই পৃষ্ঠায় থাকা কোনও ধারণাই আমার পক্ষে কাজ করার চেষ্টা করে নি। অন্য পোস্টে আমি এই পরামর্শটি পেয়েছি এবং এটি কাজ করে - অপসারণ:

[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]

... আপনার এসেম্বলিআইএনফো ফাইল থেকে।


আপনি @ ক্রেজি বিড়াল প্রেম আমি যখন ভিএস ২০১৯ এ স্থানান্তরিত হয়েছি তখন আমার সাথে এটি ঘটেছিল।
আন্তোনিও রদ্রিগেজ

0

আমার ভিএস ২০১০-তে একই সমস্যা ছিল Clean সমাধানটি পুনর্নির্মাণ এবং পুনর্নির্মাণ এবং এটি কার্যকর।


0

উপরোক্ত বিক্রমডস এর মন্তব্য, http://torulflundgren.blogspot.com.au/2010/03/cannot-obtain-value-of-local-or.html উল্লেখ করে আমার পক্ষে তা করেছে। আমি সমস্ত কিছু যাচাই করেছিলাম - স্থানীয় বিন ফোল্ডারগুলি থেকে সমস্ত ডিএল, পিডিবি ফাইল মুছে ফেলেছি, ক্লিন, পুনর্নির্মাণ, অস্থায়ী এএসপি.নেট ফাইলগুলির সমস্ত ফোল্ডার সাফ করে দিয়েছি, নিশ্চিত করেছেন ট্র্যাক / ডিইবিইউজি পতাকাগুলি সেট করা হয়েছে, ডিএলএল পথগুলি পরীক্ষা করেছেন ইত্যাদি etc.

এটি নিচে রাখার জন্য যাতে এটি ক্ষতিগ্রস্থ হয় না, ক্ষতিগ্রস্থ প্রকল্পের জন্য:

প্রকল্পের বৈশিষ্ট্য -> বিল্ড -> উন্নত -> ডিবাগ তথ্য: সম্পূর্ণ।

আপনি এটি পরীক্ষা করে দেখতে চান যে এটি করার আগে আপনার ডিবাগ কনফিগারেশনটি নির্বাচিত রয়েছে, অবশ্যই অন্যথায় আপনি ইচ্ছা করেছিলেন।


0

আপনি যদি একটি এএসপি.এনইটি প্রকল্প ডিবাগ করার চেষ্টা করছেন, তবে নিশ্চিত হয়ে নিন যে প্রকল্পের বৈশিষ্ট্য> ওয়েব> সার্ভারের ড্রপডাউনটি "আইআইএস এক্সপ্রেস" এ সেট করা আছে (এখানে অন্য সমস্ত কিছু পরীক্ষা করার পাশাপাশি)।


0

আমি সি ++ / ক্লায়েন্ট এমএফসি এক্সটেনশান ডেল মিশ্রিত করেছি, এটি ডিবাগ কনফিগারেশন (ভিএস 2017 মডিউল উইন্ডো থেকে দেখা যায়) এমনকি অনুকূলিত হয়েছিল। পূর্ববর্তী উত্তরের হিসাবে আমি "VS2013 তে পরিবর্তিত হয়ে যান: সরঞ্জামগুলি -> বিকল্পগুলি -> ডিবাগিং -> সাধারণ করুন এবং 'পরিচালিত সামঞ্জস্যতা মোড ব্যবহার করুন' সক্ষম করুন This এটি নতুন ফাংশন মূল্যায়নের আচরণকে অক্ষম করে" " এই সেটিংগুলি ভিএস 2017 এও পাওয়া যায়।

তবে এটি পর্যাপ্ত ছিল না, তাই আমি অন্য এমএফসি অ্যাপ্লিকেশনটির প্রকল্প ফাইল থেকে এক্সটেনশান ডিএল প্রকল্প ফাইলটিতে ইউজডিবগলিবারি সেটিংটিও অনুলিপি করেছি।

    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
      ...
      <UseDebugLibraries>true</UseDebugLibraries>

তারপরে পুনর্নির্মাণ এবং এটি সমস্যার সমাধান করে।


0

ভিজ্যুয়াল স্টুডিও ২০১২ -এ সরঞ্জামগুলি> ডিবাগিং> জাস্ট-ইন-টাইম থেকে " পরিচালিত " বিকল্পটি সক্ষম করা আমার পক্ষে কাজ করেছে।

এখানে চিত্র বর্ণনা লিখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.