উইন্ডোজ আপডেটের কারণে এমভিসি 3 এবং এমভিসি 4 কাজ বন্ধ করে দিয়েছে


126

আমি কি কেবল সেই ব্যক্তি যিনি অক্টোবরে 15 এ একটি উইন্ডোজ আপডেট (8.1) ইনস্টল করেছিলেন, এবং হঠাৎ এই সতর্কতার কারণে এমভিসি কাজ করা বন্ধ করে দিয়েছে?

সতর্কতা 1 এই রেফারেন্সটি সমাধান করতে পারেনি। "System.Web.Mvc, সংস্করণ = 4.0.0.0, সংস্কৃতি = নিরপেক্ষ, PublicKeyToken = 31bf3856ad364e35, প্রসেসর আর্কিটেকচার = এমএসআইএল" সমাবেশটি সনাক্ত করতে পারেনি। ডিস্কে অ্যাসেম্বলি উপস্থিত রয়েছে কি না তা পরীক্ষা করে দেখুন। যদি এই কোডটি আপনার কোডের দ্বারা প্রয়োজনীয় হয় তবে আপনি সংকলনের ত্রুটি পেতে পারেন get

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

কেউ কেউ জানেন যে প্রতিটি প্রকল্পের জন্য হামাগুড়ি না দিয়ে কীভাবে এটি ঠিক করবেন?


রেফারেন্স কোথা থেকে এসেছে? জিএসি? রেফারেন্স অ্যাসেম্বলি না নুগেট?
ব্লাউডার্ট

1
বিষয়টি নিয়ে মাইক্রোসফ্টের ব্লগটি পড়ুন । ( এটির সাথে লিঙ্ক দেওয়ার জন্য e4rthdog ধন্যবাদ , আরও দৃশ্যমানতা পেতে কেবল মন্তব্য করুন)
হানা



1
মনে রাখবেন যে আপনাকে নিজের উত্পাদন পরিবেশেও ওয়েবকনফিগটি সম্পাদনা করতে হবে।
ক্যাপ্টেন কেনপাচি

উত্তর:


107

সর্বোত্তম সমাধানটি DLL সংস্করণে 4.0.0.1 আপডেট করুন। নুগেট ব্যবহার করার চেষ্টা করুন:

Install-Package Microsoft.AspNet.Mvc -Version 4.0.40804 -Project <your project name>

এটি স্বয়ংক্রিয়ভাবে আপডেট হবে

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-4.0.0.1" newVersion="4.0.0.1" />
  </dependentAssembly>

আপনাকে কেবল সংস্করণটি সম্পাদনা করতে হবে সিস্টেম.ওয়েব.এমভিসি ম্যানুয়ালি:

<compilation debug="true" targetFramework="4.0">
  <assemblies>
    <add assembly="System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />


1
হ্যাঁ, কেবল জিএসি রেফারেন্সকে নুগেট রেফারেন্সের সাথে প্রতিস্থাপন করুন। আমাদের জন্য কাজ করেছেন।
abatishchev

7
বিষয়টি নিয়ে মাইক্রোসফ্টের ব্লগটি পড়ুন । ( এটির সাথে লিঙ্ক দেওয়ার জন্য e4rthdog ধন্যবাদ , আরও দৃশ্যমানতা পেতে কেবল মন্তব্য করুন)
হানা

10
উপরের কাজগুলি করার পরে কেন আমি এই সতর্কতাগুলির পুরো গুচ্ছ পেয়েছি তার কোনও ধারণা: "এসপিএনটিকম্পিলার: সতর্কতা সিএস 1702: অ্যাসেম্বলি রেফারেন্স 'সিস্টেম.ওয়েব.এমভিসি, সংস্করণ = 4.0.0.0, সংস্কৃতি = নিরপেক্ষ, পাবলিককেটোকেন = 31 বিএফ 3856 এডি 364e35' ম্যাচ ' System.Web.Mvc, সংস্করণ = 4.0.0.1, সংস্কৃতি = নিরপেক্ষ, PublicKeyToken = 31bf3856ad364e35 ', আপনার রানটাইম নীতি সরবরাহ করার প্রয়োজন হতে পারে "?
ফারিনহা

1
@ ফারিহা, আমারও একই সতর্কতা রয়েছে। আমি তাদের দূরে নিতে পারি না। এই সতর্কতাগুলি বিল্ড পারফরম্যান্সকে হত্যা করে। এটি ঠিক করার কোনও উপায় আপনি খুঁজে পেয়েছেন?
স্টেফানহা

3
@ স্টেফানহা, এখনও একটি ঠিক খুঁজে পাওয়া যায় নি। আমি লক্ষ্য করেছি যে অ্যাপ্লিকেশন জুড়ে .0.০.০.০ এর অনেকগুলি রেফারেন্স রয়েছে, ভিউ ফোল্ডারগুলির ভিতরে থাকা ওয়েবকনফাইগ ফাইলগুলিতে, তবে ম্যানুয়ালি এই সমস্ত পরিবর্তনের পরেও সতর্কবার্তাটি রয়ে গেছে।
ফারহিনহা

26

আমাদের বিল্ডগুলি চালু করতে আমাদের প্রতিটি .csproj টি সংস্করণটি 4.0.0.0 থেকে 4.0.0.1 অবধি আপডেট করতে হয়েছিল । বেশ ব্যথা।

নতুন উল্লেখগুলি দেখতে হবে:

<Reference Include="System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />

3
নোট করুন এমভিসি 3.0 এর জন্য একই পরিবর্তন প্রয়োজন, আবার কাজ করার জন্য রেফারেন্সটি "3.0.0.1" হওয়া উচিত।
অ্যান্ডি

আমার ক্ষেত্রে এটির প্রয়োজন ছিল, এবং এটিও নির্দেশ করা দরকার যে "নির্দিষ্ট সংস্করণ" "সত্য"
পিমব্রুওয়ার্স

24

আপডেটের পরে একই সমস্যা ছিল:

মাইক্রোসফ্ট এএসপি.নেট এমভিসি 4.0 (KB2993928) এর জন্য সুরক্ষা আপডেট http: //support.mic Microsoft.com/kb/2993928

তবে কেবলমাত্র সিস্টেমের জন্য একটি রেফারেন্স সহ প্রকল্পের জন্য e ওয়েবে.এমভিসি, প্যাকেজ দ্বারা ইনস্টল করা নেই।

আমার সহকর্মী, যিনি মাইক্রোসফ্ট এএসপি.নেট এমভিসি Run.০ রানটাইম ইনস্টল করেন নি এবং আপডেটটি পাননি, কোনও সমস্যা হয়নি এবং এখনও had.০.০.০-এর রেফারেন্স ছিল, 4.0.০.০.১-তে

আমি ম্যানুয়ালি 4.0.০.০ -তে রেফারেন্সটি পরিবর্তন করেছি । 1 , চেক-ইন করার পরে, আমার সহকর্মী এখনও 4.0.0.0-র একটি রেফারেন্স দিয়ে তৈরি করতে পারেন could 0
(উইন 7 প্রো এসপি 1, ভিএস2013 প্রো আপডেট 3 এ উভয়কেই কাজ করা)


22

দয়া করে এই ব্লগটি দেখুন, প্রস্তাবিত উপায় হ'ল সম্পর্কিত নিউগেট প্যাকেজ আপডেট করা:

http://blogs.msdn.com/b/webdev/archive/2014/10/16/microsoft-asp-net-mvc-security-update-broke-my-build.aspx

উদ্ধৃতি থেকে:

নিম্নলিখিত একটি সমাধান প্রয়োগ করে সমস্যার সমাধান করা যেতে পারে:

  1. (পছন্দসই) নুগেট গ্যালারী থেকে মাইক্রোসফ্ট.এএসপনেট.এমভিসি ইনস্টল করুন (এটি আপনার ওয়েবকনফাইগে একটি বাঁধার পুনর্নির্দেশ ইনস্টল করবে)। আপনি এটি নিউগেট প্যাকেজ ম্যানেজার বা ভিজ্যুয়াল স্টুডিওর ভিতরে নিউগেট কনসোল থেকে করতে পারেন:

    ইনস্টল-প্যাকেজ মাইক্রোসফ্ট.এএসপনেট.এমভিসি-সংস্করণ -প্রজেক্ট প্রকল্প প্রকল্প

    এমভিসি 4 সংস্করণ: 4.0.40804.0

    এমভিসি 3 সংস্করণ: 3.0.50813.1

  2. System.Web.MVC.dll এর संदर्भটি ম্যানুয়ালি আপডেট করুন (জিএসি-তে কোনওটি ব্যবহার করবেন না)।

    অ্যাড রেফারেন্স -> সমাবেশগুলি -> এক্সটেনশানস ডায়ালগ বক্স ব্যবহার করে দেখুন।



4

ওয়েব প্রকল্পের জন্য, আপনাকে ওয়েবকনফাইগের কনফিগারেশনটি আপডেট করতেও পারে:

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.1"/>
  </dependentAssembly>

2

আপনার সমাধানের মধ্যে আপনাকে System.Web.Mvc- এর সমস্ত রেফারেন্স পরিবর্তন করতে হবে। কেবল এগুলি মুছুন এবং নতুন 4.0.0.1 সংস্করণ যুক্ত করুন।

বৈশিষ্ট্যগুলিও copy localসত্যে পরিবর্তিত হয়।

এবং ওয়েবকনফিগে এমভিসি-র নতুন সংস্করণে নির্দেশিত করতে অসম্পূর্ণভাবে বাধ্যতামূলক যুক্ত করুন:

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

সেটিং CopyLocal=trueআমাদের কোনও কাজে দেয়নি; দেখুন: MS14-059 সাল System.Web.MVCথেকে binফোল্ডারে অনুলিপি করা হয়নি
ড্যানি টুপেনি

1

ঠিক আছে,

আমার জন্য এটি দুটি সহজ পদক্ষেপ ছিল:

প্রথমে আমি System.Web.Mvc- তে সমস্ত রেফারেন্স 4.0.0.0 থেকে 4.0.0.1 এ পরিবর্তন করেছি,

তারপরে আমাকে System.Web.Mvc এর বৈশিষ্ট্যগুলিতে যেতে হয়েছিল (সম্ভবত কারণ আমি এটি সরিয়ে দিয়ে আবার যুক্ত করেছি) এবং স্থানীয় অনুলিপিটিকে সত্যে পরিবর্তন করতে হয়েছিল।

আশা করি এটি কারও জন্য সহায়ক।


0

আপনি যদি এখনও ক্রিজিসটফ সলিউশন বা উপরের অন্য উত্তরগুলির সাথে চেষ্টা করেও একই ত্রুটি পেয়ে যাচ্ছেন তবে আপনার পক্ষে কাজ করতে পারে এমন একটি কাজ এমভিসি রানটাইম 4.0 আনইনস্টল করা to

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