मैं विचारों को संकलित करने के लिए एक msbuild कार्य चाहता हूं ताकि मैं देख सकूं कि क्या संकलन के समय त्रुटियां हैं ... संकलन समय। कोई विचार?
मैं विचारों को संकलित करने के लिए एक msbuild कार्य चाहता हूं ताकि मैं देख सकूं कि क्या संकलन के समय त्रुटियां हैं ... संकलन समय। कोई विचार?
जवाबों:
मैं स्पष्ट रूप से RazorGenerator नगेट पैकेज की सिफारिश करूंगा। इस तरह आपके विचारों की एक .designer.cs
फ़ाइल उत्पन्न होती है जब आप उन्हें सहेजते हैं और आपके विचार के लिए संकलन समय त्रुटियों को प्राप्त करने के शीर्ष पर, उन्हें असेंबली (= तेज़ वार्मअप) में भी प्री-कंपाइल किया जाता है और Resharper कुछ अतिरिक्त सहायता भी प्रदान करता है।
इसका उपयोग करने के लिए आप में ASP.NET MVC प्रोजेक्ट में रेजरगेंटर नगेट पैकेज शामिल करें और टूल → एक्सटेंशन और अपडेट्स के तहत आइटम के तहत " रेजर जेनरेटर " एक्सटेंशन इंस्टॉल करें ।
हम इसका उपयोग करते हैं और इस दृष्टिकोण के साथ प्रति उपरि बहुत कम है। इसके शीर्ष पर मैं शायद RedGate द्वारा .NET दानव की सिफारिश करूंगा जो आगे संकलन समय प्रभाव को काफी कम करता है।
उम्मीद है की यह मदद करेगा।
RC1 के लिए रीडमी शब्द doc से (Google द्वारा अनुक्रमित नहीं)
ASP.NET कम्पाइलर पोस्ट-बिल्ड स्टेप
वर्तमान में, रन समय तक किसी दृश्य फ़ाइल में त्रुटियों का पता नहीं लगाया जाता है। आपको संकलन समय पर इन त्रुटियों का पता लगाने के लिए, ASP.NET MVC परियोजनाओं में अब एक MvcBuildViews संपत्ति शामिल है, जो डिफ़ॉल्ट रूप से अक्षम है। इस गुण को सक्षम करने के लिए, प्रोजेक्ट फ़ाइल खोलें और MvcBuildViews गुण को सत्य पर सेट करें, जैसा कि निम्नलिखित उदाहरण में दिखाया गया है:
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>
नोट इस सुविधा को सक्षम करने से बिल्ड समय में कुछ ओवरहेड जुड़ जाता है।
आप निम्न चरणों का पालन करके विचारों के बिल्ड-टाइम सत्यापन को शामिल करने के लिए MVC के पिछले रिलीज़ के साथ बनाई गई परियोजनाओं को अपडेट कर सकते हैं:
<PropertyGroup>
तत्व के तहत निम्न तत्व जोड़ें :
<MvcBuildViews>true</MvcBuildViews>
<Target Name="AfterBuild">
तत्व को अनइंस्टॉल करें और इसे निम्न से मिलान करने के लिए संशोधित करें:<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>
आप इसके लिए aspnet_compiler का उपयोग कर सकते हैं :
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
जहां " / वर्चुअल / एप्लिकेशन / पथ / या पथ / में / IIS / मेटाबेस " कुछ इस तरह है: " / MyApp " या " / lm / w3svc2 / 1 / root / "
इसके अलावा वहाँ एक है AspNetCompiler टास्क MSDN पर, कैसे MSBuild साथ aspnet_compiler एकीकृत करने के लिए दिखा रहा है:
<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>
इसके अलावा, यदि आप Resharper का उपयोग करते हैं, तो आप समाधान विस्तृत विश्लेषण को सक्रिय कर सकते हैं और यह किसी भी कंपाइलर त्रुटियों का पता लगाएगा जो आपके पास aspx फ़ाइलों में हो सकती हैं। यही तो हम भी करते हैं...
यहां दिया गया उत्तर कुछ MVC संस्करणों के लिए काम करता है, लेकिन दूसरों के लिए नहीं।
MVC1 के लिए सरल समाधान ने काम किया लेकिन MVC2 में अपग्रेड करने पर विचारों की शिकायत नहीं की जा रही थी। यह वेबसाइट प्रोजेक्ट फ़ाइलों में बग के कारण था। इस हेकड लेख को देखें।
इसे देखें: http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-envc.xx
बिल्ड> चलाएँ कोड विश्लेषण
हॉटकी: Alt+F11
रेजर त्रुटियों को पकड़ने में मेरी मदद की।
विजुअल स्टूडियो की प्रोडक्टिविटी पावर टूल्स ( फ्री ) एक्सटेंशन का उपयोग करने से थोड़ी मदद मिलती है । विशेष रूप से, Solution Error Visualizer
सुविधा। इसके साथ, संकलन त्रुटियों को समाधान एक्सप्लोरर (स्रोत फ़ाइल में जहां त्रुटि मिली थी) में नेत्रहीन रूप से चिह्नित किया गया है। किसी कारण के लिए, हालांकि, यह सुविधा कोड में कहीं और अन्य त्रुटियों के साथ काम नहीं करती है।
एमवीसी के विचारों के साथ, किसी भी संकलन-समय की त्रुटियों को अभी भी उनकी संबंधित .cs फ़ाइलों में लाल रंग में रेखांकित किया जाएगा, लेकिन इन त्रुटियों को इंगित करते हुए समाधान एक्सप्लोरर में ऊपर की तरफ प्रचारित नहीं किया जाता है (किसी भी तरह, यहां तक कि स्रोत फ़ाइल में नहीं)।
BlueClouds
मेरे पिछले कथन को सही करने के लिए धन्यवाद ।
मैंने इसे विस्तार की गितुब परियोजना पर एक मुद्दे के रूप में रिपोर्ट किया है।