আমাদের কাছে একটি পুরানো এএসপি.নেট এমভিসি 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>
এটি আবার চেষ্টা করে দেখুন এবং একই সতর্কতা পেয়েছে।
আমার প্রশ্নটি - আমার কি এখনও সমস্যা আছে? বা আমার সতর্কতা থাকা সত্ত্বেও এটি সমাধান করবে?
