2012-09-13 2 views
45

मैं obj/डिबग में बनाया जा रहा 3 अस्थायी फ़ाइलों है:TemporaryGeneratedFile_ [GUID]/obj/डिबग में तोड़ने का निर्माण

जैसे

  • TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
  • TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
  • TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs

(मार्गदर्शिकाएं समाधान के बाद भी बदलती नहीं लगती हैं)

मेरा निर्माण विफल रहा है क्योंकि:

SA1633: फ़ाइल में कोई हेडर नहीं है, हेडर एक्सएमएल अमान्य है, या हेडर फ़ाइल के शीर्ष पर स्थित नहीं है।

मैं स्टाइलकॉप नियम को बंद नहीं करना चाहता हूं। मैं यह कैसे पता लगा सकता हूं कि इन अस्थायी फ़ाइलों को क्या बना रहा है?

साइट 5 मॉडल, 4 नियंत्रक, 2 कक्षाएं, 2 एएसपीएक्स वेब पेज और 1 सेवा संदर्भ के साथ एक एएसपीनेट एमवीसी 4 साइट है, जो संख्यात्मक रूप से 3 फाइलों के साथ मेल नहीं लगती है।

कोई बात नहीं?

संपादित करें: यदि मैं 4.5 से 4 तक फ्रेमवर्क बदलता हूं तो ये फ़ाइलें दूर हो जाती हैं और बिल्ड सफल होता है।

StyleCop की मेरी संस्करण 4.4 है, मैं इसे obj/डिबग की अनदेखी करने के

+0

आप मैन्युअल रूप से इन फाइलों को नष्ट कर दिया है (कभी-कभी साफ ओबीजे फ़ोल्डर में चीज़ों को खटखटाता नहीं है) और क्या वे वापस आते हैं? – Tommy

+0

@ टॉमी यूप, मैंने मैन्युअल रूप से obj/डीबग फ़ोल्डर को नियुक्त किया है और वे एक ही guids के साथ वापस आ गए हैं। – NikolaiDante

+0

यदि वे अस्थायी फ़ाइलें हैं जो समाधान/परिनियोजन का हिस्सा नहीं हैं और एमएसबिल्ड इन फ़ाइलों को कैसे बना रहा है, इस पर आपका कोई नियंत्रण नहीं है, तो क्या यह समझदारी होगी कि स्टाइलकॉप ओबीजे फ़ोल्डर को अनदेखा कर रहा है? मुझे लगता है कि ये आपकी परियोजना के एमवीसी विचार/वेब पेज भागों से बंधे जा सकते हैं, खासकर यदि आपके पास एमवीसीबिल्ड व्यू चालू है या समग्र परियोजना डीएल बिल्ड प्रक्रिया का हिस्सा है (सी-तेज कंपाइलर विशेषज्ञ नहीं है) – Tommy

उत्तर

35

एक StyleCop.Settings फ़ाइल के पारसर्स ब्लॉक में इन फ़ाइलों के लिए एक प्रविष्टि जोड़ने के जाने का कोई तरीका खोजने के लिए खुला और अधिक से अधिक कर रहा हूँ: मान एक रेगेक्स है, इसलिए एक ग्रिड से मेल खाने के लिए एक कठिन व्यक्ति का उपयोग किया जा सकता है, लेकिन ये अब मेरी ज़रूरत को पूरा करता है।

<Parsers> 
    <Parser ParserId="Microsoft.StyleCop.CSharp.CsParser"> 
     <ParserSettings> 
     <BooleanProperty Name="AnalyzeDesignerFiles">False</BooleanProperty> 
     <CollectionProperty Name="GeneratedFileFilters"> 
      <Value>\.g\.cs$</Value> 
      <Value>\.generated\.cs$</Value> 
      <Value>\.g\.i\.cs$</Value> 
      <Value>TemporaryGeneratedFile_.*\.cs$</Value> 
     </CollectionProperty> 
     </ParserSettings> 
    </Parser> 
    </Parsers> 
+0

उपरोक्त आपके उदाहरण में 'संदर्भ.cs' जोड़ने के लिए आप किस रेगेक्स मान का उपयोग करेंगे? – DevDave

+0

' संदर्भ \ .cs $' – NikolaiDante

+0

धन्यवाद निकोलाई। स्टाइलकॉप अभी भी इस फ़ाइल के लिए त्रुटियों को दे रहा है, भले ही सेटिंग फ़ाइल में जोड़ा गया मान, कोई विचार क्या गलत हो रहा है? – DevDave

32

मैंने इस समस्या को हल करने के लिए परियोजना समाधान (जिसका निर्माण) पर जाकर इस मुद्दे को हल किया।

  1. प्रोजेक्ट पर राइट क्लिक करें और प्रोजेक्ट को अनलोड करें।
  2. फिर प्रोजेक्ट पर राइट क्लिक करें और .csproj फ़ाइल को संपादित करें।
  3. इन अस्थायी (समस्याग्रस्त) जेनरेट की गई फ़ाइलों को देखें। (उदाहरण कोड देखें)
  4. .csproj फ़ाइल से इस फ़ाइल संदर्भ को हटा दें।
  5. प्रोजेक्ट पर राइट क्लिक करें और प्रोजेक्ट को वापस लोड करें।
  6. समाधान पुनर्निर्माण।
  7. इसकी अब जाना ...

वे csproj फ़ाइल में इस तरह दिखना अच्छा:

<Compile Include="src\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs" /> 
<Compile Include="src\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs" /> 
<Compile Include="src\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs" /> 
+1

मुझे .csproj फ़ाइल को संपादित करने की आवश्यकता नहीं थी, लेकिन उसे अनलोड करने की आवश्यकता थी,/bin,/obj, सभी .sln फ़ाइलों, और सभी .suo और .csproj.usr फ़ाइलों से सभी सामग्री को हटा दें। साफ और निर्मित, परियोजना को फिर से लोड किया गया और जी 2 जी था। धन्यवाद! – Rachael

+0

धन्यवाद। यह काम करता हैं। – jewelhuq

+0

हाय राजेश। बहुत बहुत धन्यवाद। – VivekDev

14

"TemporaryGeneratedFile_" उपसर्ग के साथ 3 फ़ाइलें स्वत: जनरेट Microsoft.WorkflowBuildExtensions से कर रहे हैं ।लक्ष्य सबसे अधिक संभावना श्रृंखला के माध्यम से आयात की गई फ़ाइल:

  • * .csproj ->
  • Microsoft.CSharp.targets ->
  • Microsoft.Common.targets ->
  • Microsoft.WorkflowBuildExtensions। लक्ष्यों

वे मध्यवर्ती उत्पादन पथ $(IntermediateOutputPath) MSBuild संपत्ति है, आमतौर पर obj\debug की तरह कुछ द्वारा बताया तहत उत्पन्न कर रहे हैं। इन ऑटो-जेनरेट की गई फ़ाइलों के बारे में StyleCop चेतावनियों/त्रुटियों से निपटने का एक तरीका स्टाइलकॉप को $(IntermediateOutputPath) के तहत किसी भी * .cs फ़ाइलों को छोड़ने के लिए कहना है। उदाहरण के लिए, अपनी परियोजना में निम्नलिखित आइटम शामिल हैं:

<ItemGroup> 
    <ExcludeFromStyleCop Include="$(IntermediateOutputPath)\**\*.cs" /> 
</ItemGroup> 

ExcludeFromStyleCop StyleCop.targets फ़ाइल द्वारा मान्यता प्राप्त (कम से कम StyleCop 4.7 के लिए) एक निर्माण के दौरान विश्लेषण से फाइल को बाहर करने के लिए एक आइटम नाम है। डबल स्टार ** एक फ़ोल्डर के तहत रिकर्सिवली खोज के लिए एमएसबिल्ड सिंटैक्स है।

नया आइटम विजुअल स्टूडियो में समाधान एक्सप्लोरर में दिखाई दे सकता है। यदि यह अवांछनीय है यह दृष्टिगोचर 'आइटम मेटाडाटा का उपयोग करके छिपा हो सकता है:

<ItemGroup> 
    <ExcludeFromStyleCop Include="$(IntermediateOutputPath)\**\*.cs" > 
     <Visible>False</Visible> 
    </ExcludeFromStyleCop> 
</ItemGroup> 

इसी दृष्टिकोण यदि आवश्यक हो तो अन्य फ़ाइलों को छोड़ने के लिए इस्तेमाल किया जा सकता। मुझे आशा है कि वह मदद करेंगे।

+0

गलत आइटम पर स्लैश होने वाले समापन आइटम समूह के अलावा, यह समाधान मेरे लिए पूरी तरह से काम करता है! – Dracorat

+1

@Dracorat ने तय किया कि – JustinStolle

0

मैं एक ऐसे सहयोगी की मदद कर रहा था जिसने हमारे मुख्य वीएस समाधान में एक नई परियोजना को जोड़ा था और इन्हें वही 3 त्रुटियां मिलीं। मैं उनके साथ सुझाए गए सुझावों के माध्यम से चला गया लेकिन इसे ठीक करने में कोई सफलता नहीं मिली। इसके बाद, मैंने पाया कि कोड समाधान और स्टाइलकॉप का उपयोग करने वाले हमारे समाधान के भीतर एक नई परियोजना को जोड़ते समय हमने उन चरणों में से एक को याद किया था। वह अपनी परियोजना में सेटिंग्स.StyleCop फ़ाइल को जोड़ना भूल गया था :)

0

मैंने हाल ही में इस समस्या में कहीं भी भाग नहीं लिया है।

मेरे लिए, मैं हर .csproj प्रोजेक्ट के लिए फ़ाइलों को खोलने से इस पर काबू पाने के लिए है, तो निम्न पंक्ति को हटाने में सक्षम था:

<Import Project="$(SolutionDir)\CodeAnalize\Microsoft.StyleCop.targets" /> 

के बाद फिर से खोलने समाधान, इसके बिना सब कुछ का निर्माण करने में सक्षम था एक त्रुटि।

0

मैं एक ऐसी ही समस्या का सामना करना पड़ा और इस प्रकार इसे हल: obj फ़ोल्डर में

हटाए गए बिन फ़ोल्डर में डिबग अलावा को डिबग पुनर्निर्माण और यह काम किया

संबंधित मुद्दे