এএসপি.নেট এমভিসি-তে সংকলন দর্শন


558

আমি মতামতগুলি সংকলন করার জন্য একটি এমএসবিল্ড টাস্ক চাই যাতে আমি দেখতে পাই যে সংকলন সময় ত্রুটি ভাল আছে কিনা ... সংকলন সময়। কোন ধারনা?


1
আপনি কী ব্যবহার করছেন তা আমি জানি না, তবে আপনি যদি রেজার ব্যবহার করছেন তবে আপনি আমার ব্লগ পোস্টটি পরীক্ষা করতে চাইতে পারেন: <a href = " chrisvandesteeg.nl/2010/11/22/… আপনার asp.net এমভিসি রেজারকে পৃথক ডিএল-তে দেখে নেওয়া যায় </a> অন্যান্য ভিউইনজাইনদের জন্যও কোডটি ব্যবহার করা সম্ভব হওয়া উচিত, তবে এখনও এটি করা ও পরীক্ষিত করা হয়নি
ক্রিস ভ্যান ডি স্টিগ

উত্তর:


154

আমি স্পষ্টভাবে রেজারজেনেটর নুগেট প্যাকেজটি সুপারিশ করব । .designer.csআপনি যখন সেগুলি সংরক্ষণ করেন তখন আপনার দর্শনগুলিতে কোনও ফাইল উত্পন্ন হয় এবং আপনার দেখার জন্য সংকলনের সময় ত্রুটিগুলি অর্জন করার পরে, তারা অ্যাসেমব্লিতেও পূর্বনির্ধারিত হয় (দ্রুততম ওয়ার্মআপ) এবং রিসার্পার পাশাপাশি কিছু অতিরিক্ত সহায়তাও সরবরাহ করে।

এটি ব্যবহারের জন্য আপনাকে এএসপি.এনইটি এমভিসি প্রকল্পে রেজারজেনেটর নুগেট প্যাকেজ অন্তর্ভুক্ত করুন এবং সরঞ্জাম tension এক্সটেনশানস এবং আপডেটের অধীনে আইটেমের অধীনে " রেজার জেনারেটর " এক্সটেনশনটি ইনস্টল করুন ।

আমরা এটি ব্যবহার করি এবং এই পদ্ধতির সাথে কম্পাইল প্রতি ওভারহেড অনেক কম। এর উপরে আমি সম্ভবত সুপারিশ করব। রেডগেট দ্বারা নেট ডেমোন যা আরও কমপাইল সময় প্রভাব কমিয়ে দেয়।

আশাকরি এটা সাহায্য করবে.


1
ভিএস ২০১২-তে কোনও অচল সমাধান রয়েছে?
ড্যানিয়েল

6
দুর্ভাগ্যজনক যে এটি কেবল সি # এবং কোনও ভিবি. নেটকে সমর্থন করে না
এড ডিগাগেন

3
@ জোয়েডবার্গি রেজারজেনেটর ভিএস ২০১২ এর সাথে কাজ করে; রেজারগেনেটর.এমভিসি এবং রেজারজেনেটর.এমএস বিল্ড ব্যবহার করার সময়: এক্সটেনশনের দরকার নেই। Stacktoheap.com এ
জেরোইন কে

2
এটি কেবল ত্রুটিগুলি সন্ধান করতে ব্যবহার করা যেতে পারে - বা অ্যাপ্লিকেশন মোতায়েনের সময় এটি ভিউ ইঞ্জিনটি প্রতিস্থাপন করে?
নিকো

আমি রেজারজেনেটর নুগেট প্যাকেজ এবং রেজার জেনারেটর এক্সটেনশন ইনস্টল করেছি। আমার প্রকল্পে কিছুই পরিবর্তন করা হয়নি। কোনও .designer.cs ফাইল হাজির হয়নি। আমি ভিজ্যুয়াল স্টুডিও 2017 ব্যবহার করি
মাইকেল স্যামটিলডজে

563

আরসি 1 এর জন্য রিডমি ওয়ার্ড ডক থেকে (গুগল দ্বারা সূচিত নয়)

এএসপি.এনইটি সংকলক পোস্ট-বিল্ড স্টেপ

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

<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <MvcBuildViews>true</MvcBuildViews>
  </PropertyGroup>

দ্রষ্টব্য এই বৈশিষ্ট্যটি সক্ষম করা বিল্ড টাইমের সাথে কিছু ওভারহেড যুক্ত করে।

নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করে দেখানোর বিল্ড-টাইম বৈধতা অন্তর্ভুক্ত করতে আপনি এমভিসি-র পূর্বের রিলিজ দিয়ে তৈরি করা প্রকল্পগুলি আপডেট করতে পারেন:

  1. একটি টেক্সট সম্পাদক এ প্রকল্প ফাইল খুলুন।
  2. সর্বাধিক-উপাদানটির নীচে নিম্নলিখিত উপাদান যুক্ত করুন <PropertyGroup>: <MvcBuildViews>true</MvcBuildViews>
  3. প্রকল্পের ফাইলটির শেষে, <Target Name="AfterBuild">উপাদানটি নিরঙ্কুশ করে নীচের সাথে মেলে এটি পরিবর্তন করুন:
<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
    <AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>

27
এটি যদি আপনার প্রকল্পের জন্য কাজ না করে, আপনার প্রকল্পের ফাইলের কোথাও <MvcBuildViews> মিথ্যা </ mvcBuildViews> নেই কিনা তা পরীক্ষা করে দেখুন। এটি এর উপরে আমি যুক্ত হওয়া নতুন <এমভিসি বিল্ডভিউ> উপাদানটি ওভাররাইড করে।
অ্যাড্রিয়ান গ্রিগোর

3
@mxmissile: স্কট Guthrie সুপারিশ আপনার সমাধান করার জন্য একটি ওয়েব ডিপ্লোয়মেন্ট প্রকল্প যোগ ওয়েব অ্যাপ্লিকেশন প্রকল্প সমর্থন এই সাজানোর পেতে: weblogs.asp.net/scottgu/archive/2006/09/22/...
Zhaph - বেন ডুগুইড

6
নিশ্চিত করুন যে সক্ষমআপআপডেবলটি মিথ্যাতে সেট করা আছে বা অন্যথায় মতামতগুলি পূর্বনির্ধারিত হবে না Make <EnableUpdateable> মিথ্যা </ EnableUpdateable> <MvcBuildViews> সত্য </ mvcBuildViews> ( devcarl.posterous.com/… )
কার্ল হারবার্গ

55
কেন, কেন, কেন ... ভিউ বা না দেখিয়ে তৈরি করার জন্য কোনও কীবোর্ড শর্টকাট নেই? এমএস কেন?
ডারিওল

2
এটি এমভিসি সরঞ্জামগুলিতে যুক্ত হওয়া সমাধান। stackoverflow.com/a/2670792/878612
lko

50

আপনি এর জন্য এসপনেট_কম্পাইলার ব্যবহার করতে পারেন :

C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler -v /Virtual/Application/Path/Or/Path/In/IIS/Metabase -p C:\Path\To\Your\WebProject -f -errorstack C:\Where\To\Put\Compiled\Site

যেখানে " / ভার্চুয়াল / অ্যাপ্লিকেশন / পাথ / বা / পাথ / ইন / আইআইএস / মেটাবেস " এইরকম কিছু: " / মাই অ্যাপ " বা " / এলএম / ডাব্লু 3 এসভিসি 2/1 / মূল / "

এছাড়াও এমএসডিএন-তে একটি এস্পনেটকম্পিলার টাস্ক রয়েছে, যেখানে এমএসবিল্ডের সাথে কীভাবে এস্পনেট_কম্পিলার সংহত করা যায় তা দেখানো হয়েছে:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="PrecompileWeb">
        <AspNetCompiler
            VirtualPath="/MyWebSite"
            PhysicalPath="c:\inetpub\wwwroot\MyWebSite\"
            TargetPath="c:\precompiledweb\MyWebSite\"
            Force="true"
            Debug="true"
        />
    </Target>
</Project>

5
এটি পুরানো, নিচের রিডমি ডকটির একটি অংশ দেখুন।
JarrettV

1
অন্যান্য উত্তর আরো বিস্তারিত প্রকল্পের কাজের বর্ণনা করে, কিন্তু aspnet_compiler অংশ এখনও সঠিক (এবং বিল্ড এজেন্ট উপর দরকারী) হয়।
mlhDev

26

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


4
এটি সত্য যে এটি এসপিএক্স ফাইলগুলির জন্য কাজ করে, তবে সমাধান-বিস্তৃত বিশ্লেষণে এসএসএক্স ফাইলগুলি (ব্যবহারকারীর নিয়ন্ত্রণ) অন্তর্ভুক্ত নয়
mookid8000

3
আমি বিশ্বাস করি এটি আর # 5 এ রয়েছে তবে এটি বড় প্রকল্পগুলির জন্য একটি বিশাল সংস্থান হগ (এমনকি আমার 16 জিবি হোম মেশিনে এটি ব্যবহারের পক্ষে উপযুক্ত নয়)।
অ্যান্ড্রু

3
@ অ্যান্ড্রু / @ মুকিড ৮০০ - আর # এটিও ত্রুটিগুলি ধরবে যা সংকলকটি করবে না, যেমন নিখোঁজ / ভুল দর্শন এবং ক্রিয়া। আর # আপনার পিসিটি কিছুটা কমিয়ে দেবে (4 জিবি র‌্যাম এবং হাইপারথ্রেডেড সিপিইউ সহ এটি একটি বৃহত-ইশ প্রকল্পে আমি সূক্ষ্ম দেখতে পাই) তবে আমি এটির জন্য অপেক্ষা করা সময়টি খুব সহজেই ফিরিয়ে আনি এবং আমি আমার উপর আরও কম অপারেশন করে চলেছি আর # হিসাবে কোড উচ্চ স্তরের ক্রিয়াকলাপ সরবরাহ করে যা ব্যাচকে একই সাথে ম্যানুয়ালি একই কাজটি অর্জন করতে আমার অনেক পদক্ষেপ গ্রহণ করতে হবে। আপনার প্রকল্পটি বিশাল হতে হবে!
ড্রয় নোকস

5
বড় প্রকল্পগুলির জন্য, "আপনার পিসিটি কিছুটা কমিয়ে দিন" একটি সংক্ষেপণ। আমার বিল্ড মেশিনটিতে 16 গিগাবাইট র‌্যাম এবং 8 টি কোর (২ টি Xeons) রয়েছে এবং এটি কেবল CRAWLS। আমার একটা অনুভূতি আছে যে # প্রকল্পগুলি কেবলমাত্র আমাদের আকারের জন্য তৈরি করা হয়নি ... উদাহরণস্বরূপ আমাদের সমাধানটিতে 30 ডলার প্রকল্প রয়েছে, কয়েক মিলিয়ন এলওসি রয়েছে এবং আরও কয়েকশ ভিউ রয়েছে। আমি আমাদের ছোট প্রকল্পগুলিতে আর # পছন্দ করি (উদাহরণস্বরূপ কয়েকটি প্রকল্প এবং 50 টিরও বেশি ভিউ নয়) তবে আমাদের বড় একটিতে আমাদের সর্বদা এটি বন্ধ করতে হবে।
বিপ বিপ

1
এটি আমার কাজ, তবে চালাও! আমি আমার সমাধানটি ছোট বলে ভেবে এটি চালু করেছিলাম এবং এটি 'বিশ্লেষণ' শেষ করে না এবং আমার সমস্ত র‍্যাম এবং সিপিইউ খায় te আমাকে পুনরুদ্ধার করতে 15 মিনিট সময় নিয়েছে।
এএমআরগিনস

11

এএসপি.নেট এমভিসি'র পরবর্তী প্রকাশের (জানুয়ারী বা তার মধ্যে পাওয়া যায়) এমএসবিল্ড টাস্কটি থাকা উচিত যা ভিউগুলি সংকলন করে, তাই আপনি অপেক্ষা করতে চাইতে পারেন।

ঘোষণা দেখুন


6

এখানে দেওয়া উত্তরটি কিছু এমভিসি সংস্করণের জন্য কাজ করে তবে অন্যদের জন্য নয়।

সাধারণ সমাধানটি এমভিসি 1 এর জন্য কাজ করেছে তবে এমভিসি 2 তে আপগ্রেড করার সময় মতামতগুলির আর সংকলন করা হয়নি। এটি ওয়েবসাইট প্রকল্প ফাইলগুলিতে একটি বাগের কারণে হয়েছিল। এই হ্যাকড নিবন্ধটি দেখুন।

এটি দেখুন: http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-en वातावरण.aspx


6

বিল্ড> রান কোড বিশ্লেষণ

হটকি: Alt +F11

রেজার ত্রুটিগুলি ধরতে আমাকে সহায়তা করেছিল।


2
আমি এই উত্তরটিকে অগ্রাহ্য করলাম কারণ হটকি প্রকৃতপক্ষে একটি রেজার ত্রুটি প্রকাশ করেছিল। তবে আমি পরে লক্ষ্য করেছি যে আইডিইতে আপনার কাছে .cshtml ফাইল খোলা থাকলে কেবল এটি কাজ করে।
মাইকেল 12345

1

ভিজ্যুয়াল স্টুডিওর উত্পাদনশীলতা পাওয়ার সরঞ্জামগুলি ( ফ্রি ) এক্সটেনশনটি কিছুটা সহায়তা করে । বিশেষত, Solution Error Visualizerবৈশিষ্ট্য। এটির সাথে সংকলন ত্রুটিগুলি সমাধান এক্সপ্লোরারটিতে দৃশ্যত চিহ্নিত করা হয়েছে (উত্স ফাইলে যেখানে ত্রুটিটি পাওয়া গেছে)। তবে কিছু কারণে এই বৈশিষ্ট্যটি কোডের অন্য কোথাও অন্য ত্রুটিগুলির মতো কাজ করে না।

এমভিসি ভিউ সহ, কোনও কমপাইল-সময় ত্রুটিগুলি এখনও তাদের নিজ নিজ .cs ফাইলগুলিতে লাল রঙে আন্ডারলাইন করা হবে তবে এই ত্রুটিগুলি সংকেত সলিউশন এক্সপ্লোরারে (কোনও উপায়ে, এমনকি উত্স ফাইলটিতে নয়) উপরেও প্রচার করা হয় না।

BlueCloudsআমার পূর্ববর্তী বিবৃতি সংশোধন করার জন্য ধন্যবাদ ।

আমি এটিকে এক্সটেনশনের গিথুব প্রকল্পের সমস্যা হিসাবে প্রকাশ করেছি


1
আমি উত্পাদনশীলতা পাওয়ার সরঞ্জামগুলি চেষ্টা করেছি। তবে এখানে যা বলা হয় তেমন আচরণ করে না। রেজার ভিউতে ত্রুটি রয়েছে তবে বিল্ড হ'ল সাফল্য। দর্শনগুলি চিহ্নিত করা বা লাল, বা সমাধান সন্ধানকারী গাছের যে কোনও জায়গায় চিহ্নিত করা হয়নি।
নীল মেঘ

2
@ ব্লু ক্লাউডস: আপনি ঠিক বলেছেন। আমি একটি নমুনা প্রকল্প তৈরি করেছি এবং একটি দৃশ্যে একটি সংকলন-সময় ত্রুটি যুক্ত করেছি। এক্সটেনশানটি ত্রুটিযুক্ত রেখাগুলিকে লাল রঙে আন্ডারলাইন করবে, তবে সমাধান এক্সপ্লোরারটিতে ত্রুটিটি প্রচার করবে না। উত্তরে আমি যা বলেছি তা সংশোধন করছি। উত্তরটি এখানে রেখে যাচ্ছি কারণ এটি এখনও কিছুটা সহায়তা করে, যদিও সমস্যাটি কার্যকরভাবে সমাধান করছে না।
ভিভারকে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.