इस त्रुटि का क्या संदेश है? मैं इस मुद्दे को सही करने के लिए क्या कर सकता था?
असेंबलीInfo.cs कोड 9009 के साथ बाहर निकल गया
समस्या संभवतः Visual Studio में .NET समाधान में पोस्ट-बिल्ड चरण के भाग के रूप में हो रही है।
इस त्रुटि का क्या संदेश है? मैं इस मुद्दे को सही करने के लिए क्या कर सकता था?
असेंबलीInfo.cs कोड 9009 के साथ बाहर निकल गया
समस्या संभवतः Visual Studio में .NET समाधान में पोस्ट-बिल्ड चरण के भाग के रूप में हो रही है।
जवाबों:
क्या आपने पूर्व- या पोस्ट-बिल्ड ईवेंट कमांड में चल रहे कमांड का पूरा रास्ता देने की कोशिश की?
xcopy
विजुअल स्टूडियो 2008 में पोस्ट-बिल्ड इवेंट कमांड के कारण मुझे 9009 त्रुटि मिल रही थी ।
आदेश
"xcopy.exe /Y C:\projectpath\project.config C:\compilepath\"
9009 कोड के साथ बाहर निकल गया।
लेकिन मेरे मामले में यह भी आंतरायिक था। यही है, त्रुटि संदेश कंप्यूटर के पुनरारंभ होने तक बना रहता है, और कंप्यूटर के पुनरारंभ होने के बाद गायब हो जाता है। यह कुछ दूर से संबंधित मुद्दे के बाद वापस आ गया है जो मुझे अभी तक पता नहीं है।
हालाँकि, मेरे मामले में अपने पूर्ण मार्ग के साथ कमांड प्रदान करने से समस्या हल हो गई:
c:\windows\system32\xcopy.exe /Y C:\projectpath\project.config C:\compilepath\
इसके बजाय बस:
xcopy.exe /Y C:\projectpath\project.config C:\compilepath\
यदि मेरे पास पूर्ण पथ नहीं है, तो यह पुनरारंभ होने के बाद थोड़ी देर के लिए चलता है, और फिर बंद हो जाता है।
इस पोस्ट की टिप्पणियों पर भी उल्लेख किया गया है, यदि पूर्ण पथ में रिक्त स्थान हैं , तो कमांड के चारों ओर उद्धरण चिह्नों की आवश्यकता है । उदाहरण के लिए
"C:\The folder with spaces\ABCDEF\xcopy.exe" /Y C:\projectpath\project.config C:\compilepath\
ध्यान दें कि रिक्त स्थान के संबंध में इस उदाहरण का परीक्षण नहीं किया गया है।
"$(SolutionDir)packages\NUnit.2.5.10.11092\tools\"nunit-console "$(TargetPath)"
) हल किया।
PATH
पर्यावरण चर किसी तरह खो जाए? मुझे यह त्रुटि हर बार मिलती है। मेरे पास npm install
एक पूर्व-निर्मित घटना के रूप में सेटअप है, और शुरू में यह काम करता है (इसलिए मुझे लगता है कि सब कुछ सेटअप है), लेकिन फिर बेतरतीब ढंग से यह दिन के दौरान काम करना बंद कर देगा (आमतौर पर जब मैं समाधान / शाखाओं के बीच स्विच करता हूं तो मुझे विश्वास है), और यह अब नहीं रहेगा के बारे में पता है npm
। वीएस को art फ़िक्स ’करने से रोकना ... मतलब मेरा PATH
सेटअप सही है, लेकिन लगता है कि वी.एस. अगर वीएस I के अंदर से एनवी चर को देखने का एक तरीका था, तो मैं इसकी पुष्टि कर सकता था।
%systemroot%\System32\xcopy ...
त्रुटि कोड 9009 का अर्थ है त्रुटि फ़ाइल नहीं मिली। यहां दिए गए जवाबों में पोस्ट किए गए सभी अंतर्निहित कारणों से यह पता लगाने की अच्छी प्रेरणा है कि क्यों, लेकिन त्रुटि स्वयं का मतलब केवल एक खराब रास्ता है।
यह तब होता है जब आप Microsoft Visual Studio x86 टूल का उपयोग करने के लिए कुछ वातावरण सेटिंग्स को याद कर रहे हैं।
इसलिए, अपने पोस्ट-बिल्ड चरणों में पहले कमांड के रूप में जोड़ने का प्रयास करें:
दृश्य स्टूडियो 2010 उपयोग के लिए:
call "$(DevEnvDir)..\Tools\vsvars32.bat"
जैसा कि VSF 2017 के उपयोग के लिए @FlorianKoch ने टिप्पणियों में उल्लेख किया है:
call "$(DevEnvDir)..\Tools\VsDevCmd.bat"
इसे किसी अन्य आदेश से पहले रखा जाना चाहिए।
यह Microsoft Visual Studio x86 टूल का उपयोग करने के लिए वातावरण सेट करेगा।
call "$(DevEnvDir)..\Tools\vsvars32.bat"
? धन्यवाद
Path
पर्यावरण चर में एक प्रविष्टि जोड़ना था । अधिक जानकारी के लिए आउटपुट विंडो की जाँच करें।
"$(DevEnvDir)..\Tools\VsDevCmd.bat"
सबसे अधिक शायद आपके परिणामी पथ में स्थान है।
आप रास्तों को उद्धृत करके इसके आसपास काम कर सकते हैं, इस प्रकार रिक्त स्थान की अनुमति दे सकते हैं। उदाहरण के लिए:
xcopy "$(SolutionDir)\Folder Name\File To Copy.ext" "$(TargetDir)" /R /Y /I
विन 7. चर में पर्यावरण चर से पथ परिवर्तन के बाद एक ही चर था। डिफ़ॉल्ट रूप से वापस बदलने में मदद मिली।
मुझे 9009 त्रुटि हुई है जब मेरी पोस्ट बिल्ड इवेंट स्क्रिप्ट एक बैच फ़ाइल चलाने की कोशिश कर रही थी जो निर्दिष्ट पथ में मौजूद नहीं थी।
जब मैंने अपने पथ वातावरण चर को कम किया तो मुझे यह त्रुटि हुई। संपादन के बाद, मैंने गलती Path=
से पथ स्ट्रिंग की शुरुआत में जोड़ा । इस तरह के विकृत पथ चर के साथ, मैं कमांड लाइन पर XCopy (कोई आदेश या फ़ाइल नहीं मिली) चलाने में असमर्थ था, और Visual Studio ने कोड 9009 के साथ त्रुटि का हवाला देते हुए पोस्ट-बिल्ड चरण को चलाने से इनकार कर दिया।
XCopy आमतौर पर C: \ Windows \ System32 में रहता है। एक बार जब पथ वातावरण चर ने XCopy को DOS प्रॉम्प्ट पर हल करने की अनुमति दी, तो विज़ुअल स्टूडियो ने मेरे समाधान को अच्छी तरह से बनाया।
मेरी सटीक त्रुटि थी
The command "iscc /DConfigurationName=Debug "C:\Projects\Blahblahblah\setup.iss"" exited with code 9009.
9009 का अर्थ है फ़ाइल नहीं मिली, लेकिन यह वास्तव में कमांड के "iscc" भाग को नहीं खोज सका।
मैंने इसे ";C:\Program Files\Inno Setup 5 (x86)\"
सिस्टम वातावरण चर में जोड़कर तय किया"path"
यदि स्क्रिप्ट वास्तव में वही करती है जो उसे करने की आवश्यकता है और यह सिर्फ विज़ुअल स्टूडियो आपको उस त्रुटि के बारे में बता रहा है जिसे आप अभी जोड़ सकते हैं:
exit 0
आप स्क्रिप्ट के अंत तक।
अक्षर विन्यास की जाँच। मैं एक निष्पादन योग्य फोन करने की कोशिश कर रहा था, लेकिन नाम गलत था और इसने मुझे exited with code 9009
संदेश दिया ।
मेरे मामले में, मुझे कमांड को कॉल करने से पहले, उचित सीडी को पहले "सीडी" (चेंज डायरेक्टरी) में लाना था, क्योंकि निष्पादन योग्य होने के बाद से मैं अपने प्रोजेक्ट डायरेक्टरी में था।
उदाहरण:
cd "$(SolutionDir)"
call "$(SolutionDir)build.bat"
एक और प्रकार:
आज मैं win32 में क्रोन से अजगर इंटरप्रेटर को बुलाता हूं और एक्सिटकोड (% ERRORLEVEL%) 9009 लेता हूं, क्योंकि क्रॉन द्वारा उपयोग किए जाने वाले सिस्टम खाते में पायथन डायरेक्टरी का रास्ता नहीं है।
मेरे मामले में समस्या तब हुई जब मैंने अपने टेस्ट क्लास लाइब्रेरी में पोस्ट-बिल्ड इवेंट के लिए कमांड-लाइन पर एक कमांड का उपयोग करने की कोशिश की। जब आप उद्धरण चिह्नों का उपयोग करते हैं जैसे:
"$(SolutionDir)\packages\NUnit.Runners.2.6.2\tools\nunit" "$(TargetPath)"
या यदि आप कंसोल का उपयोग कर रहे हैं:
"$(SolutionDir)\packages\NUnit.Runners.2.6.2\tools\nunit-console" "$(TargetPath)"
इसने मेरे लिए मुद्दा तय कर दिया।
tfa के उत्तर को अस्वीकृत कर दिया गया है, लेकिन वास्तव में यह मुद्दा पैदा कर सकता है। Hanzolo के लिए धन्यवाद, मैंने आउटपुट विंडो में देखा और निम्नलिखित पाया:
3>'gulp' is not recognized as an internal or external command,
3>operable program or batch file.
3>D:\dev\<filepath>\Web.csproj(4,5): error MSB3073: The command "gulp clean" exited with code 9009.
दौड़ने के बाद npm install -g gulp
, मुझे यह त्रुटि मिलना बंद हो गई। यदि आपको Visual Studio में यह त्रुटि हो रही है, तो आउटपुट विंडो की जाँच करें और देखें कि क्या समस्या एक परेशान वातावरण चर है।
इसके अलावा, सुनिश्चित करें कि आपके प्रोजेक्ट पर पोस्ट बिल्ड इवेंट एडिटिंग विंडो में कोई लाइन ब्रेक नहीं हैं। कभी-कभी वेब से xcopy कमांड को कॉपी करते समय जब यह मल्टी-लाइन होता है और इसे वीएस में चिपकाने से समस्या होती है।
मेरे लिए यह एक बड़े समाधान (~ 80 परियोजना) में एक PostSharp संस्करण से अगले एक के लिए nuget संकुल के उन्नयन के बाद हुआ। मुझे उन प्रोजेक्ट्स के लिए कंपाइलर एरर मिल गए हैं, जिनके पास PreBuild इवेंट्स में कमांड्स हैं।
'cmd' को आंतरिक या बाह्य कमांड, ऑपरेशनल प्रोग्राम या बैच फ़ाइल के रूप में मान्यता नहीं दी जाती है। C: \ Program Files (x86) \ MSBuild \ 14.0 \ bin \ Microsoft.Common.CurrentVersion.targets (1249,5): त्रुटि MSB3073: कमांड "cmd / c C: \ GRRepos \ main \ ServiceInterfaces \ DEV.Config \" PreBuild.cmd ServiceInterfaces "कोड 9009 के साथ बाहर निकल गया।
PATH वैरिएबल भ्रष्ट हो गया था PostSharp.Patterns.Diagnostics से संबंधित कई दोहराया मार्गों के साथ लंबे समय तक। जब मैंने विजुअल स्टूडियो को बंद किया और फिर से खोला, तो समस्या ठीक हो गई।
पथ में रिक्त स्थान के कारण, फ़ाइल का दूसरा संस्करण नहीं मिला। Msbuild स्क्रिप्ट में मेरे मामले में। मुझे HTML स्टाइल & quot; निष्पादन कमान के भीतर तार।
<!-- Needs quotes example with my Buildscript.msbuild file -->
<Exec Command=""$(MSBuildThisFileDirectory)\wix\wixscript.bat" $(VersionNumber) $(VersionNumberShort)"
ContinueOnError="false"
IgnoreExitCode="false"
WorkingDirectory="$(MSBuildProjectDirectory)\wix" />
अन्य उत्तरों के रूप में भी, मेरे मामले में यह गुम फाइल की वजह से था। लापता फ़ाइल क्या है, यह जानने के लिए, आप आउटपुट विंडो पर जा सकते हैं और यह आपको सीधे दिखाएगा कि क्या गायब हुआ था।
Visual Studio में आउटपुट विंडो खोलने के लिए:
मैंने इसे केवल विजुअल स्टूडियो को पुनः आरंभ करके तय किया था - मैं अभी dotnet tool install xxx
एक कंसोल विंडो में चला था और वीएस ने अभी तक बदले गए नए पर्यावरण चर और / या पथ सेटिंग्स को नहीं उठाया था, इसलिए एक त्वरित पुनरारंभ ने समस्या को ठीक कर दिया।
यह बहुत बुनियादी है, मुझे यह समस्या थी, और साधारण असफलता शर्मनाक थी।
एप्लिकेशन कमांड लाइन तर्क का उपयोग करता है, मैंने उन्हें हटा दिया और फिर उन्हें वापस जोड़ दिया। अचानक यह परियोजना बनाने में विफल रही।
विज़ुअल स्टूडियो -> प्रोजेक्ट गुण -> सत्यापित करें कि आप 'डीबग' टैब का उपयोग करते हैं ('ईवेंट बनाएँ' टैब) -> कमांड लाइन तर्क
मैंने पाठ क्षेत्र का उपयोग किया और पोस्ट / प्री-बिल्ड किया, जो इस मामले में गलत था।
मेरा समाधान सिर्फ इतना आसान था: क्या आपने इसे बंद करने की कोशिश की है और फिर से? इसलिए मैंने कंप्यूटर को फिर से शुरू किया और समस्या दूर हो गई।
9009
ओवरराइट स्थिति का सामना करने पर मैं भी इस समस्या में भाग गया ।
असल में, यदि फ़ाइल पहले से मौजूद है और आपने /y
स्विच को निर्दिष्ट नहीं किया है (जो स्वचालित रूप से ओवरराइट हो जाता है) यह त्रुटि किसी बिल्ड से चलाने पर हो सकती है।
वास्तव में मैंने देखा कि किसी कारण से% windir% पर्यावरण चर कभी-कभी मिट जाता है। मेरे लिए जो काम किया गया वह विंडर चर को फिर से सेट करने के लिए c: \ windows, VS को पुनरारंभ करें, और यही है। इस तरह आप समाधान फ़ाइलों को संशोधित करने से रोकते हैं।
कम से कम विज़ुअल स्टूडियो अल्टीमेट 2013 में, संस्करण 12.0.30723.00 अपडेट 3, यह एक लाइन ब्रेक के साथ एक / और कथन को अलग करना संभव नहीं है:
काम करता है:
if '$(BuildingInsideVisualStudio)' == 'true' (echo local) else (echo server)
काम नहीं करता है:
if '$(BuildingInsideVisualStudio)' == 'true' (echo local)
else (echo server)
अभी तक एक और कारण: यदि आपका पूर्व-निर्मित ईवेंट किसी अन्य प्रोजेक्ट बिन पथ को संदर्भित करता है और आपको यह त्रुटि दिखाई देती है जब msbuild चल रहा है, लेकिन विज़ुअल स्टूडियो नहीं, तो आपको मैन्युअल रूप से * .sln फ़ाइल (एक पाठ संपादक के साथ) में परियोजनाओं को व्यवस्थित करना होगा। आप जिस परियोजना को लक्ष्य कर रहे हैं, वह घटना के परियोजना से पहले बनी है। दूसरे शब्दों में, एमएसबिल्ट उस आदेश का उपयोग करता है जो परियोजनाएं * .sln फ़ाइल में सूचीबद्ध हैं जबकि वीएस परियोजना निर्भरता के ज्ञान का उपयोग करता है। ऐसा तब हुआ था जब एक उपकरण जो एक wixproj में शामिल होने के लिए एक डेटाबेस बनाता है, उसे wixproj के बाद सूचीबद्ध किया गया था।
मुझे लगता है कि मेरे मामले में रास्ते में रूसी प्रतीक थे (सभी परियोजनाएं उपयोगकर्ता फ़ोल्डर में थीं)। जब मैंने दूसरे फ़ोल्डर में समाधान डाला (सीधे डिस्क पर), तो सब कुछ ठीक हो गया।
मेरा समाधान फ़ाइल की एक प्रतिलिपि बनाने और मूल फ़ाइल पर मेरी फ़ाइल की प्रतिलिपि बनाने के लिए निर्माण कार्य में एक कदम जोड़ना था।