গতিশীল অভিব্যক্তি সংকলনের জন্য প্রয়োজনীয় এক বা একাধিক প্রকারের সন্ধান পাওয়া যায় না। আপনি কি মাইক্রোসফট.সিএসআরপি.ডিএল এবং সিস্টেম.কোর.ডেল এর রেফারেন্স মিস করছেন?


287

আমি মাইক্রোসফ্ট ভিজ্যুয়াল সি # 2010 এ এই কোডটি সংকলনের চেষ্টা করছি

using System;
using System.Globalization;


class main
{
    static void Main()
    {

        dynamic d;
        d = "dyna";
        Console.WriteLine(d);    
    }
}

তবে আমি এই দুটি ত্রুটি পাচ্ছি

ত্রুটি 1 পূর্বনির্ধারিত প্রকারের 'মাইক্রোসফ্ট.সিএসআরপি। রুনটাইমবাইন্ডার বাইন্ডার' সংজ্ঞায়িত বা আমদানীকৃত নয়

ত্রুটি 2 গতিশীল অভিব্যক্তি সংকলনের জন্য প্রয়োজনীয় এক বা একাধিক প্রকারের সন্ধান পাওয়া যায় না। আপনি কি মাইক্রোসফট.সিএসআরপি.ডিএল এবং সিস্টেম.কোর.ডেল এর রেফারেন্স মিস করছেন?

আমি এই অন্যান্য পোস্টটি পড়েছি তবে আমি সি # তে নতুন এবং আমি বুঝতে পারি না আসলে সমস্যাটি কী। বিশেষত কী এবং কোথায় এই তথাকথিত .configফাইলগুলি ..


25
আপনার উল্লেখ দেখুন। ডান ক্লিক করুন এবং "রেফারেন্স যুক্ত করুন .." "Microsoft.CSharp.dll" অনুসন্ধান করুন এবং এটি যুক্ত করুন। সাধারণত System.Core.dll স্ট্যান্ডার্ড আসে যখন আপনি একটি নতুন প্রকল্প তৈরি করেন, CSharp.dll সম্পর্কে এতটা নিশ্চিত না
ইন্টারনেট

উত্তর:


586

আপনার সমাধান এক্সপ্লোরার উইন্ডোতে, তথ্যসূত্রগুলিতে ডান ক্লিক করুন, রেফারেন্স যুক্ত করুন নির্বাচন করুন, .NET ট্যাবে যান, মাইক্রোসফ্ট.সিএসআরপি অনুসন্ধান করুন এবং যুক্ত করুন।


26
আমার ইতিমধ্যে রেফারেন্স করা হয়েছিল এখনও আমার এই ত্রুটি ছিল। আমি ভিএস ২০১০ সালে একটি নতুন এএসপি.নেট এমভিসি 4 অ্যাপ্লিকেশন তৈরি করেছি। স্ট্যাম্পড, আমি এটিকে সরিয়ে আবার সংযোজন করেছি এবং ত্রুটিটি চলে গেছে went পরিষ্কার করা / পুনর্নির্মাণে কোনও লাভ হয়নি।
পল

@ পল: ৪.৪ থেকে ৪.৪ পর্যন্ত একটি প্রকল্প আপগ্রেড করার পরে আমার সাথে একই ঘটনা ঘটেছে। সংস্করণ # / ইত্যাদি হ'ল ৪.০ / 4.5.৪ আইআইআরসি-র মধ্যে একই কারণ এটি হতে পারে।
স্টিভেন এভার্স

13
ভিজ্যুয়াল স্টুডিও টিমের ত্রুটিটি সম্পর্কে লোককে মাউস দেওয়ার বিষয়ে সত্যই চিন্তা করা উচিত এবং তারপরে "মাইক্রোসফ্ট.সিএস্পকে রেফারেন্সগুলিতে যুক্ত করুন" নির্বাচন করুন
জিওউইউ

8
@ জিওজ এক শব্দ: রিসার্পার।
ব্যবহারকারী 2864740

2
@ ব্যবহারকারী 2864740 সাধারণত পুনঃ ভাগ করুন এটি করে Res তবে এই ক্ষেত্রে, রিসার্পার কিছুই দেখায় না।
টানুন

21

আপনার প্রকল্পটি নেট নেট ফ্রেমওয়ার্ক ৪.০ লক্ষ্য করে যাচ্ছে তা নিশ্চিত করুন। ভিজ্যুয়াল স্টুডিও 2010 .NET 3.5 ফ্রেমওয়ার্ক লক্ষ্যকে সমর্থন করে, কিন্তু .NET 3.5 dynamicকীওয়ার্ডটি সমর্থন করে না ।

আপনি প্রকল্পের বৈশিষ্ট্যে ফ্রেমওয়ার্ক সংস্করণ সামঞ্জস্য করতে পারেন। আরও তথ্যের জন্য http://msdn.microsoft.com/en-us/library/bb398202.aspx দেখুন ।


7

আমি সরানোর এবং রেফারেন্স পিছনে, ত্রুটি ঠিক করা হয়নি তাই আমি থেকে নেট সংস্করণ পরিবর্তিত যোগ ব্যতীত একই সমস্যা ছিল 4.5থেকে 4.5.1

এটি অর্জন করতে আপনার web.configফাইলে যান এবং নিম্নলিখিত লাইনগুলি পরিবর্তন করুন

<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />

এই

<compilation debug="true" targetFramework="4.5.1" />
<httpRuntime targetFramework="4.5.1" />

এবং পুনর্নির্মাণ।


6

ভিউব্যাগের নীচে লাল লাইনগুলি 3 মাসের জন্য আমার মাথাব্যথা ছিল)) প্রজেক্ট থেকে কেবল মাইক্রোসফ্ট.সিএসআর্প রেফারেন্সটি সরিয়ে ফেলুন এবং তারপরে এটি আবার যুক্ত করুন।


3
আমার ভিউব্যাগ লাইনেও রেড রেখা থাকলেও এটি আমার পক্ষে কার্যকর হয়নি
নট করুন

1

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


1

আমার জন্য, মাইক্রোসফ্ট-এ একটি রেফারেন্স অপসারণ এবং পুনরায় যুক্ত করা CS সিআরএস্প প্রভাবিত ফাইলটি সম্পাদনা না করা পর্যন্ত অস্থায়ীভাবে সমস্যার সমাধান করে। ভিজ্যুয়াল স্টুডিও বন্ধ করা এবং প্রকল্পটি পুনরায় চালু করা এটি আরও দীর্ঘমেয়াদী স্থির করে, তাই মাইক্রোসফ্ট.সিএসআরপ ইতিমধ্যে রেফারেন্স থাকা অবস্থায় এই পরিস্থিতি যদি ঘটে থাকে তবে এটি বিকল্প।

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


0

এগুলির কোনওটিই আমার পক্ষে কাজ করেনি।

আমার ক্লাসের লাইব্রেরিগুলি অবশ্যই সিস্টেম.কোর এবং মাইক্রোসফ্ট.সিএসআরপি উভয়ই রেফারেন্স করেছিল। ওয়েব অ্যাপ্লিকেশনটি 4.0 ছিল এবং সমর্থন সমস্যার কারণে 4.5 তে আপগ্রেড করতে পারেনি।

আমি রেজার ইঞ্জিন ব্যবহার করে একটি রেজার টেম্পলেট সংকলন করার সময় ত্রুটির মুখোমুখি হয়েছিলাম এবং কেবলমাত্র ওয়েব অ্যাপ্লিকেশন পুনরায় চালু হওয়ার পরে যেমন মাঝে মাঝে এটির মুখোমুখি হয়েছিল।

আমার জন্য যে সমাধানটি কাজ করেছিল তা হ'ল ম্যানুয়ালি অ্যাসেম্বলি লোড করা হচ্ছে আবার একই ক্রিয়াকলাপটি পুনরায় চেষ্টা করা ...

        bool retry = true;
        while (retry)
        {
            try
            {
                string textTemplate = File.ReadAllText(templatePath);
                Razor.CompileWithAnonymous(textTemplate, templateFileName);
                retry = false;
            }
            catch (TemplateCompilationException ex)
            {
                LogTemplateException(templatePath, ex);
                retry = false;

                if (ex.Errors.Any(e  => e.ErrorNumber == "CS1969"))
                {
                    try
                    {
                        _logger.InfoFormat("Attempting to manually load the Microsoft.CSharp.RuntimeBinder.Binder");
                        Assembly csharp = Assembly.Load("Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
                        Type type = csharp.GetType("Microsoft.CSharp.RuntimeBinder.Binder");
                        retry = true;
                    }
                    catch(Exception exLoad)
                    {
                        _logger.Error("Failed to manually load runtime binder", exLoad);
                    }
                }

                if (!retry)
                    throw;
            }
        }

আশা করি এটি অন্য কাউকে সাহায্য করতে পারে।


-2

আপনি যদি মিস করেন তবে মাইক্রোসফ্ট.সিএসআরপি.ডেল এই ত্রুটি ঘটতে পারে। আপনার প্রকল্পের রেফারেন্সগুলি পরীক্ষা করুন।


3
স্ট্যাক ওভারফ্লোতে স্বাগতম! আপনি একটি কোডের নমুনা বা আরও অনেক কিছু ব্যাখ্যা অন্তর্ভুক্ত করতে চাইতে পারেন। এটি আরও একটি মন্তব্যের মতো মনে হচ্ছে,
গ্যারি স্টোরি

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