.NET কোর এমভিসি পৃষ্ঠা পরিবর্তনের পরে সতেজ নয়


118

আমি সর্বশেষতম সংস্করণ ২.২ এ একটি নেট নেট এমভিসি তৈরি করছি। আমি যখন সিএসএইচটিএমএল ফাইলটিতে পরিবর্তন করি এবং পৃষ্ঠাটি রিফ্রেশ করি তখন আমার সমস্যা ব্রাউজারে প্রতিবিম্বিত হয় না। আমার পরিবর্তনগুলি দেখার জন্য আমাকে প্রকল্পটি পুনরায় চালু করতে হবে। এটি কিছু সময়ের জন্য ঘটছে তাই আমি ঠিক নিশ্চিত নই যে এই সমস্যার কারণে কী পরিবর্তন হয়েছে।

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

একটি ডিফল্ট। নেট কোর প্রকল্পে এটি ঠিকঠাক কাজ করে তাই এটি অবশ্যই আমার প্রকল্পের কিছু হতে পারে যা পথের পরিবর্তে পরিবর্তিত হয়েছিল। আমি ভাবছি এই সমস্যাটি ডিবাগ করার জন্য আমার কোথায় শুরু করা দরকার? আমি আমার Startup.csএবং Program.csকোনও সমাধান ছাড়াই প্রায় সমস্ত কিছু মন্তব্য করার চেষ্টা করেছি ।


আপনি নীচে উল্লিখিত একই মিসিং ম্যাথোডেপ্সেশনটির মুখোমুখি হচ্ছি ... আপনি কি কখনও তা আবিষ্কার করে ফেলেছেন? যদি, তাই আপনি দয়া করে আপনার প্রশ্নের উত্তর দিতে পারেন?
ওসবার্ন

উত্তর:


63

এএসপি.নেট কোর ২.২ এ একটি পরিবর্তন হয়েছে যা দেখে মনে হচ্ছে (এবং আমি এই পরিবর্তন সম্পর্কে কোনও ঘোষণা পাই না)। আপনি যদি 'ডেভলপমেন্ট' পরিবেশে স্পষ্টভাবে চলমান না থাকেন তবে রেজার ভিউগুলি সংকলিত হয় এবং আপনি .cshtml এ কোনও পরিবর্তন দেখতে পাবেন না

তবে আপনি নিম্নলিখিত হিসাবে আপনার স্টার্টআপ ক্লাসে কিছু কনফিগার ব্যবহার করে এটি বন্ধ করতে পারেন।

services.AddMvc().AddRazorOptions(options => options.AllowRecompilingViewsOnFileChange = true);

এএসপি.নেট কোর and.০ এবং উচ্চতর ক্ষেত্রে আলেকজান্ডার ক্রিস্টভের উত্তর দেখুন


4
ধন্যবাদ. যাইহোক, এটি উপস্থিত হয় যে আমি যখন এটি সক্ষম করি তখন এইচটিএমএলটিতে পরিবর্তন আনুন এবং রিফ্রেশ করি, আমি নিম্নলিখিত ব্যতিক্রম পাই: MissingMethodException: Method not found: 'Microsoft.Cci.IMethodReference Microsoft.Cci.ICustomAttribute.Constructor(Microsoft.CodeAnalysis.Emit.EmitContext)'. Microsoft.CodeAnalysis.CSharp.Symbol.Microsoft.CodeAnalysis.ISymbol.GetAttributes() এই ব্যতিক্রমটির অর্থ কী? এ সম্পর্কে কোনও ধারণা? অন্যান্য পৃষ্ঠাগুলির সমস্ত জরিমানা লোড। কেবলমাত্র যখন আমি কোনও ফাইল সম্পাদনা করি এবং রিফ্রেশ করি তখনই আমি এই ত্রুটিটি
পাই

4
এটি আমার পক্ষে কাজ করেছে। এটি পরিবেশের উপর নির্ভর করে সেট করতে, আই-হস্টিং-পরিবেশকে স্টার্টআপ পদ্ধতিতে যুক্ত করুন এবং কোনও সম্পত্তিতে অবিচল থাকুন। তারপরে এমন কিছু ব্যবহার করুনservices.AddMvc().AddRazorOptions(options => options.AllowRecompilingViewsOnFileChange = _env.IsEnvironment("MyEnvironment"));
কুড়িওসক্রিয়াস

4
ধন্যবাদ এটি কাজ করেছে। তবে আমি মনে করি এটি অত্যন্ত বিশ্রী এবং নির্বোধ যে মাইক্রোসফ্ট আনুষ্ঠানিকভাবে এ জাতীয় বড় পরিবর্তনগুলি ঘোষণা করে না।
কোড_আরোম

@ কেভস্ক্রি আমার সাথে একই ঘটনা ঘটছে
ওসবার্ন

4
@Mayank গুপ্ত: (নীচে আলেকজান্ডার Christov এর উত্তর দেখার stackoverflow.com/a/57637903/198990 )। তার উত্তর আমার পক্ষে কাজ করেছে (৩.১)
স্যান্ডর ড্রেইনহুইজন

225

ইন ASP.NET কোর 3.0 এবং উচ্চতর , RazorViewEngineOptions.AllowRecompilingViewsOnFileChangeপাওয়া যায় না।

আশ্চর্য হয়ে যে অ্যাপটি চলাকালীন একটি দৃশ্যকে রিফ্রেশ করা কার্যকর হয়নি আমি নিম্নলিখিত সমাধানটি আবিষ্কার করেছি:

  1. প্রকল্পটিতে Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGet প্যাকেজ যুক্ত করুন
  2. এতে নিম্নলিখিতগুলি যুক্ত করুন Startup.cs:

    পরিষেবাদি.এডডকন্ট্রোলার উইথভিউস ()। অ্যাডরাজোরআরটাইমকমপ্লেশন () ;

কৌতুহলের সম্পূর্ণ ব্যাখ্যা এখানে ...

এইচটিএইচ


4
এটি যে কোনও কারণে আমার পক্ষে কার্যকর হয়নি। আমি যদি ম্যাকের সাথে থাকি তবে এটি যদি কোনও পার্থক্য করে।
নকুল তিরুভিলুয়ামালা

@ নকুল আপনি নেট নেট সংস্করণটি কী ব্যবহার করেন?
আলেকজান্ডার ক্রিস্টভ

7
এটি ম্যাক এবং এএসপি.নেট কোর ৩.১ এ আমার জন্য দুর্দান্ত কাজ করেছে।
ব্যবহারকারী 3071284

4
এই ইঙ্গিতটির জন্য Thx; আমার জন্য কাজ করেছেন। নেট কোর 3.1.2
জাভা

4
ওয়াওবার্স! 15 বছর। নেট এ কাজ করা এবং এটি সহজ হতে ব্যবহৃত হত। .NET কোর এর সাথে 1 দিন কাজ করা এবং সবকিছু ভেঙে গেছে বলে মনে হচ্ছে। এবং গুরুত্ব সহকারে - কে সিদ্ধান্ত নিয়েছে যে এটি এইচটিএমএল সংকলন করা এবং ডিফল্টরূপে রানটাইম এ পরিবর্তনযোগ্য না হয়ে যাওয়া, তারপর বিকাশকারীদের কোনও সমাধানের জন্য শিকার করা ভাল ধারণা?
জেসন স্নেল্ডার্স

54

আমি সবেমাত্র সর্বশেষতম এএসপি.নেট এমভিসি কোর ৩.১ টেম্পলেট ব্যবহার করে একটি নতুন প্রকল্প তৈরি করেছি এবং আমি ডিবাগের জন্য রানটাইম পুনঃসংশোধন সক্ষম করার জন্য নিম্নলিখিতটি পরিবর্তন করেছি:

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

স্টার্টআপ.সি - কনফিগার সার্ভিসেস (আইএসভারসোলেকশন পরিষেবা) ওয়াস:

// stuff...

services.AddControllersWithViews();

// more stuff...

এখন:

// stuff...

var mvcBuilder = services.AddControllersWithViews();

#if DEBUG
    mvcBuilder.AddRazorRuntimeCompilation();
#endif

// more stuff...

4
অ্যালেক্সের পোস্ট করা নিবন্ধটি না পড়ে এটিই সেরা উত্তর, যা পড়ার পক্ষে মূল্যবান।
ওয়ারগি

10

আপনার কেবল এটি যুক্ত করা উচিত:

services.AddControllersWithViews();

থেকে ConfigureService পদ্ধতি।

ASP.NET কোর 3.1 তে নীচের কোডটি উপলভ্য নয়:

services.AddControllersWithViews().AddRazorRuntimeCompilation();

7
এটি মাইক্রোসফ্টে কাজ করার জন্য আপনাকে নুগেট প্যাকেজ ইনস্টল করতে হবে spএএসপনেটকোর.এমভিসি.রাজর.রুনটাইম
মায়াঙ্ক গুপ্ত

5

ভিউগুলি পৃথক প্রকল্পে থাকার সময় নীচে আমাকে সহায়তা করেছিল।

if(HostingEnvironment.IsDevelopment()){ // only in development (optional)
    services.AddMvc().AddRazorOptions(o => {
        o.FileProviders.Add(new PhysicalFileProvider(PATH_TO_PROJECT));
    });
}

4
রেজার ক্লাস লাইব্রেরিগুলির সাথে কাজ করার সময় এটিই আমার পক্ষে একমাত্র উত্তর। চিয়ার্স!
সিপকে শুরস্ট্রা

3

কমান্ড সহ। নেট কোর 2.2 চলমান অ্যাপ্লিকেশনটি ব্যবহার dotnet watch runকরে প্রতিটি পরিবর্তনের পরে প্রকল্পটি পুনরায় চালু করা হয়


1

আমি ASPNETCORE_ENVIRONMENT=Developmentপরিবেশ পরিবর্তনশীল যুক্ত করে রাইডারে এই সমস্যাটি সমাধান করতে সক্ষম হয়েছি ।


1

নেট কোর ৩.০ বা তার বেশি সংখ্যক ব্যবহার করছেন তাদের জন্য using

  1. সরঞ্জামগুলিতে যান → নুগেট প্যাকেজ ম্যানেজার solution সমাধানের জন্য নুগেট প্যাকেজগুলি পরিচালনা করুন

  2. ইন্টারনেট থেকে ব্রাউজ করতে ট্যাব ব্রাউজ সরানো

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

  4. আপনার স্থিত প্রকল্পগুলিতে এটি বর্তমান ইনস্টল করুন on

  5. startup.cs ফাইলটি খুলুন

  6. অকার্যকর পদ্ধতিতে কনফিগার সার্ভিসগুলিতে যান

  7. লাইন যুক্ত করুন: services.AddControllersWithViews().AddRazorRuntimeCompilation();

  8. তুমি পেরেছ

পুনরায় এবং দেখুন। এখন আপনি নিজের দর্শন বা পৃষ্ঠাগুলি রিফ্রেশ করতে পারেন।


0

আপনি কি নিশ্চিত যে আপনি ২.২ ব্যবহার করছেন? আপনার সিএসপ্রোজটি পরীক্ষা করুন কারণ এটি এই বাগ হতে পারে https://github.com/aspnet/Razor/issues/2466 আপনি RazorCompileOnBuildআরও তথ্য বন্ধ করার চেষ্টা করতে পারেন https://docs.microsoft.com/en-us/aspnet/core/razor -পৃষ্ঠা / এসডিকে? ভিউ = এসপেটকোর -২.১ # বৈশিষ্ট্য


0

এই সমস্যাটি সমাধান করার দুটি উপায় রয়েছে:

। আপনার .sln ফাইল উপস্থিত রয়েছে এমন ফোল্ডারের অনুমতিগুলি পরীক্ষা করুন I আইআইএস এক্সপ্রেস সার্ভার চলমান থাকাকালীন ভিজ্যুয়াল স্টুডিওতে ফাইল অ্যাক্সেস নাও থাকতে পারে, তাই প্রতিবার নতুন .cshtml পরিবর্তনগুলি প্রতিফলিত করার জন্য সার্ভারটি পুনরায় চালু করুন, সুতরাং আমি ফোল্ডার অ্যাক্সেস অনুমতিগুলি এর মাধ্যমে সম্পাদনা করার পরামর্শ দিচ্ছি:

ফোল্ডারে-> বৈশিষ্ট্য-> সুরক্ষা-> এডিট বোতামে ক্লিক করুন -> সমস্ত বিকল্প চেক করুন-> সংরক্ষণ করুন

পরিবর্তনগুলি দেখতে ভিজ্যুয়াল স্টুডিও পুনরায় চালু করুন।

যদি এটি কাজ না করে তবে 2 টি বিকল্প ব্যবহার করুন।

2 .আপনার প্রকল্পের শুরুতে। ফাইলগুলিতে এটিকে নীচে লাইনটি কনফিগার সার্ভিসেস () পদ্ধতিতে যুক্ত করুন:

Services.AddMvc ()। AddRazorOptions (অপশন => অপশনস.অ্যালোররকম্পিলিংভিউসঅনফাইলে চেঞ্জ = সত্য);

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