System.web.mvc অনুপস্থিত


90

আমাদের কাছে একটি পুরানো এএসপি.নেট এমভিসি 3 ওয়েব অ্যাপ্লিকেশন রয়েছে, ভিএস 2010-এ বিল্ডিং, যা গত সপ্তাহের সুরক্ষা আপডেটের পরে সংকলন করতে ব্যর্থ হয়েছে।

সমস্যাটি হ'ল System.Web.Mvc.dll এর রেফারেন্সটি নষ্ট হয়ে গেছে।

যখন আমি আমাদের বিল্ড মেশিনে সলিউশন ফাইলটি খুলি, যেখানে সুরক্ষা আপডেটটি চালিত হয়নি, এবং রেফারেন্স-> সিস্টেম. ওয়েবে.এমভিসির জন্য বৈশিষ্ট্য ডায়ালগটি খুলি, এটি দেখতে ঠিক আছে।

পাথটি সি: \ প্রোগ্রাম ফাইলগুলি \ মাইক্রোসফ্ট এএসপি.এনইটি \ এএসপি.নেট এমভিসি 3 \ অ্যাসেমব্লিশগুলি \ সিস্টেম.ওয়েব.এমভিসি.ডিএল সংস্করণটি 3.0.0.0

তবে যখন আমি সমাধান ফাইলটি কোনও ডেভ মেশিনে খুলি যেখানে সুরক্ষা আপডেট চলেছে, রেফারেন্স-> সিস্টেম. ওয়েবে.এমভিসি অনুপস্থিত হিসাবে চিহ্নিত করা হয়েছে। আমি যদি এটি সরিয়ে ফেলেছি এবং ভিএস 2010 এর অ্যাড রেফারেন্স সংলাপটি ব্যবহার করে এটি আবার যুক্ত করার চেষ্টা করি তবে এটি প্রদর্শিত হয় না।

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

আমি যখন উইন্ডোজ এক্সপ্লোরারে "সি: \ প্রোগ্রাম ফাইলগুলি \ মাইক্রোসফ্ট এএসপি.এনইটি \ এএসপি.নেট এমভিসি 3 \ অ্যাসেমব্লিশেস \ সিস্টেম.Web.Mvc.dll" এর বৈশিষ্ট্যগুলি দেখি, তখন বিল্ড মেশিনে আমি সংস্করণটি 3.0.0.0 দেখতে পাই।

আমি যখন দেব মেশিনে থাকা বৈশিষ্ট্যগুলি দেখি, তখন আমি 3.0.50813.1 সংস্করণটি দেখতে পাই।

আমার যেটি দরকার তা হ'ল আমি যেভাবে তৈরি করি এবং চালনার উপায় তা পরিবর্তন করা যায় যাতে .NET 3.0 ফ্রেমওয়ার্কে ইনস্টল করা এই দুটি ডিএলএল-এর মধ্যে নির্বিশেষে আমি নির্মান এবং চালাতে পারি।

ধারনা?

আমি যা চেষ্টা করেছি তা কার্যকর হয়নি

প্রথম প্রচেষ্টা - যদি সমাবেশটি অনুপস্থিত থাকে তবে এটি যুক্ত করুন। আমি পুরানো অনুপস্থিত রেফারেন্স মুছলাম। তারপরে আমি আমার প্রকল্পের একটি ফোল্ডারে "ASP.NET MVC3 \ সমাবেশগুলি" ফোল্ডার থেকে ডিএলএল অনুলিপি করেছি। এটিকে "সর্বদা অনুলিপি করুন" হিসাবে সেট করুন এবং এটি একটি রেফারেন্স হিসাবে যুক্ত করুন।

এটির সাথে, প্রকল্পটি ভিএস 2010-এ সংকলিত হবে, তবে আমি যখন এসপনে_কম্পাইলারের সাথে পৃষ্ঠাগুলি প্রাকপম্পাইল করার চেষ্টা করব তখন আমি সতর্কতা পেয়েছিলাম:

(0): warning CS1702: Assuming assembly reference 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' matches 'System.Web.Mvc, Version=3.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35', you may need to supply runtime policy

এখনও অবধি, রানটাইম নীতিগুলি বুঝতে না পেরে আমি পরিচালনা করতে সক্ষম হয়েছি, তবে আমি ওয়েবকনফাইগ এ এটি যুক্ত করার চেষ্টা করেছি:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.1" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>

এটি আবার চেষ্টা করে দেখুন এবং একই সতর্কতা পেয়েছে।

আমার প্রশ্নটি - আমার কি এখনও সমস্যা আছে? বা আমার সতর্কতা থাকা সত্ত্বেও এটি সমাধান করবে?


আপনি কি সমস্ত নুগেট প্যাকেজগুলি তাদের সর্বশেষ সংস্করণে আপডেট করার চেষ্টা করেছেন (অবশ্যই সম্ভব)?
সিলভারমাইন্ড


4
ওয়েব অ্যাপ্লিকেশনটিতে কোনও ন্যুগেট প্যাকেজ নেই। এবং হ্যাঁ, এটি এমএস 14-059 বাগ।
জেফ Dege

আমি একই সমস্যার মতো দেখতে পাচ্ছি, যদিও আমি এর পরিবর্তে নুগেট প্যাকেজ এবং 4 সংস্করণ ব্যবহার করছি। এটি সূক্ষ্ম সংকলন করে, এবং এটি সমস্ত কাজ করে, তবে এই 20+ সংকলনের সতর্কতাগুলি রয়েছে যা থেকে আমি মুক্তি পেতে চাই।
ফারিনহা

উত্তর:


143

নুগেটের মাধ্যমে এমভিসি 3 এর সর্বশেষতম সংস্করণটি পান। ডেভ স্টুডিওতে আপনার প্রকল্পটি খুলুন। ডেভ স্টুডিওর নীচে প্যাকেজ ম্যানেজার কনসোল ট্যাবটি খুলুন। তারপরে এই কমান্ডটি ব্যবহার করুন:

PM> Install-Package Microsoft.AspNet.Mvc -Version 3.0.50813.1

আপনি যদি "-সংস্করণ" এর পরে ট্যাব কীটি ক্লিক করেন তবে আপনি উপলব্ধ সমস্ত সংস্করণটির একটি তালিকা পাবেন।

আপনার যদি নুগেটের একটি পুরানো সংস্করণ থাকে তবে আপনাকে এটি আপগ্রেড করতে হবে তা নির্দেশ করে একটি ত্রুটি পেতে পারে। যদি তা হয় তবে নুগেটের সর্বশেষ সংস্করণটি ইনস্টল করতে সরঞ্জাম-> এক্সটেনশন ম্যানেজারটি খুলুন। নোট, নুগেট ইনস্টল করার আগে আপনাকে প্রশাসক হিসাবে দেব স্টুডিও চালাতে হবে।

এমভিসি 3 ইনস্টল করা আপনার প্রকল্পে ওয়েবকনফিগ আপডেট করা উচিত।

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-3.0.0.1" newVersion="3.0.0.1" />
  </dependentAssembly>
</assemblyBinding>

4
বাদবাই !!!! এই জন্য ঘন্টা ব্যয় ... নুগেট সন্ধ্যা সংস্করণ ইনস্টল করার জন্য যথেষ্ট সহজ .... ধন্যবাদ একটি গুচ্ছ !!!
Squ1rr3lz

হ্যাঁ, নুগেট ভিজ্যুয়াল স্টুডিও 2010 এর সাথে কাজ করে You আপনাকে কেবল এটি এক্সটেনশন ম্যানেজারের মাধ্যমে ইনস্টল করতে হবে। সরঞ্জাম মেনুতে।
স্পট

4
ইনস্টল-প্যাকেজ মাইক্রোসফ্ট.এএসপনেট.এমভিসি সমস্যাটি সমাধান করবে। আমাদের সত্যই সংস্করণ নম্বরটি উল্লেখ করার দরকার নেই
সুজয় কোডমালা

4
@ সুজয়কোডমালা আপনি সর্বশেষতম এমভিসি 3 ইনস্টল করতে চান এবং এমভিসি 5 (প্যাকেজের সর্বশেষ সংস্করণ) ইনস্টল করতে চান তবে সংস্করণ নম্বর নির্ধারণ করা গুরুত্বপূর্ণ।
স্পট

Install-Package Microsoft.AspNet.Mvc -Project ProjectName -Reinstallএটি আরও সুস্পষ্ট, সেই প্রকল্পটির জন্য আপনার কাছে থাকা সংস্করণটি ইনস্টল করে এবং অন্যান্য প্রকল্পগুলির স্পর্শ করা থেকে বাধা দেয় (যদি ইচ্ছা হয়)।
মাইক ই

30

এমভিসি 5

সি: \ প্রোগ্রাম ফাইল (x86) \ মাইক্রোসফ্ট এএসপি.এনইটি \ এএসপি.নেট ওয়েব স্ট্যাক 5 \ প্যাকেজগুলি \ মাইক্রোসফ্ট.এএসপনেট.এমভিসি.5.0.0 .0 লাইব \ নেট 45 \ System.Web.Mvc.dll

এমভিসি 4

সি: \ প্রোগ্রাম ফাইল (x86) \ মাইক্রোসফ্ট ASP.NET \ ASP.NET MVC 4 \ সমাবেশগুলি \ System.Web.Mvc.dll

এমভিসি 3

সি: \ প্রোগ্রাম ফাইল (x86) \ মাইক্রোসফ্ট ASP.NET \ ASP.NET MVC 3 \ সমাবেশগুলি \ System.Web.Mvc.dll

এমভিসি 2

সি: \ প্রোগ্রাম ফাইল (x86) \ মাইক্রোসফ্ট ASP.NET \ ASP.NET MVC 2 \ সমাবেশগুলি \ System.Web.Mvc.dll

এমভিসি 3 ইনস্টল থাকা সিস্টেমে কোথায় আমি System.Web.MVC dll খুঁজে পাব?


ধন্যবাদ এটি আমাকে বছরে ভিএস 2010 এর জন্য লক্ষ্যযুক্ত প্রকল্প খুলতে সহায়তা করেছে :)
আমল

23

এই সমস্যা সমাধানের সহজতম উপায় হ'ল ওয়েব প্ল্যাটফর্ম ইনস্টলার থেকে এএসপি.নেট এমভিসি 3 ইনস্টল করা।

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

http://www.microsoft.com/web/downloads/

অথবা নিউজ কমান্ড ব্যবহার করে

Install-Package Microsoft.AspNet.Mvc -Version 3.0.50813.1

4
এটি আমার সমস্যার সমাধান করেছে যা আমি নতুন পিসি স্যুইচ করার পরে উত্থাপিত হয়েছিল এবং এএসপি.নেট এমভিসি 4 ডিএল-এর উল্লেখ সহ একটি প্রকল্প করেছি যা আমি এখনও নতুন মেশিনে ইনস্টল করি নি।
ক্লোভোলা


2

আমার একই অবস্থা: ভিজ্যুয়াল স্টুডিও 2010, কোনও নিউগেট ইনস্টল করা নেই, এবং সিস্টেম.ওয়েব.এমভিসি সংস্করণ 3 ব্যবহার করে একটি এএসপি.নেট অ্যাপ্লিকেশন।

সলিউশন এক্সপ্লোরার-এর রেফারেন্সগুলিতে গিয়ে System.Web.Mvc ব্যবহার করে এমন প্রতিটি সি # প্রকল্প স্থাপন করা এবং স্থানীয় কপি অনুলিপি সহ সিস্টেম.ওয়েব.এমভিসি-তে বৈশিষ্ট্য নির্ধারণ, এবং নির্দিষ্ট সংস্করণটিকে মিথ্যা হিসাবে নির্ধারণ করা ছিল - সর্বশেষটি সেই মেশিনে সংস্করণ ক্ষেত্রের বর্তমান সংস্করণ দেখিয়েছে।


1

Vs2017-এ এই সমস্যাটি ছিল, আমি ইতিমধ্যে নুগেটের মাধ্যমে এমভিসি পেয়েছি তবে সিস্টেম.ওয়েব.এমভিসি "অ্যাফারেন্স উল্লেখ করুন" এর অধীনে "অ্যাসেমব্লিশগুলি" তালিকায় উপস্থিত হয়নি।

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


1

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


0

আমার ক্ষেত্রে আমার প্রকল্পে যথাযথ উল্লেখগুলি ছিল। আমি দেখতে পেলাম যে সমাধানটি তৈরি করে নুগেট প্যাকেজগুলি স্বয়ংক্রিয়ভাবে পুনরুদ্ধার করা হয়েছিল।


0

Vs2015-এ খোলা নমুনা mvcmusicstore.codeplex.com কিছু রেফারেন্স মিস করেছে, যার মধ্যে একটি System.web.mvc।

এর সমাধানটি হ'ল এটি রেফারেন্সগুলি থেকে সরানো এবং একটি রেফারেন্স যুক্ত করা: অ্যাসেমব্লিসির অধীনে এক্সটেনশনগুলি বেছে নিন , সেখানে আপনি System.Web.Mvc খুঁজে পেতে এবং যুক্ত করতে পারেন।

(অন্যান্য অ্যাসেম্বলিগুলি আমি নুগেট প্যাকেজগুলির সাথে যুক্ত করেছি))


0

। / প্যাকেজ / মাইক্রোসফটস.এএসপনেট.এমভিসি। জালিয়াতি থেকে পুনরায় রেফারেন্স যুক্ত করুন

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