MSBUILD: त्रुटि MSB1008: केवल एक परियोजना निर्दिष्ट की जा सकती है


116

मुझे निम्न बिल्ड त्रुटि क्यों हो रही है?

C: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ msbuild.exe C: \ Code \ EduBenesNETNET \ EduBenesNETNET \ EduBenesNET.vbproj / t: "p: कॉन्फ़िगरेशन / रिलीज़: प्लेटफ़ॉर्म = AnyCPU / v: विस्तृत / p: PublishDir = "\\ BSIIS3 \ c $ \ DATA \ WEBSITES \ benesys.net \ benesys.net \ TotalEducationTest \" /p:InstallUrl="https://www.benesys.net/benesys.net/TotalEducationTest/ "ap:ApplicationVersion=1.0.1.198 / p: ProductName =" कुल शिक्षा परीक्षण "/ p: PublisherName =" BeneSys, Inc. " / p: UpdateRequired = "True" /p:MinimumRequiredVersion=1.0.1.198
Microsoft (R) इंजन संस्करण 3.5.30729.1 बनाएँ
[Microsoft .NET फ्रेमवर्क, संस्करण २.०.५०27२.3.३३०३]
कॉपीराइट (C) Microsoft Corporation 2007. सभी अधिकार सुरक्षित।

MSBUILD: त्रुटि MSB1008: केवल एक परियोजना निर्दिष्ट की जा सकती है।
स्विच: शिक्षा

स्विच सिंटैक्स के लिए, "MSBuild / help" टाइप करें

मैं यह नहीं देखता कि एक दूसरी परियोजना कैसे निर्दिष्ट की जा रही है।
यह कहीं एक परियोजना फ़ाइल में संग्रहीत है?


4
बहुत ही कमांड शक्तियां में काम करती है, लेकिन cmd.exe में नहीं ... ऐसा लगता है कि आप एक स्थानिक वर्ण क्रम को मार रहे हैं ...
Cédric Rup

जवाबों:


135

यह पता चलता है कि पब्लिशर संपत्ति में पीछे चल रही स्लैश अंतिम उद्धरण से बच रही है। पीछे चल रहे स्लैश से बचकर मेरी समस्या हल हो गई।

/p:PublishDir="\\BSIIS3\c$\DATA\WEBSITES\benesys.net\benesys.net\TotalEducationTest\\"

इस तरह से हम उन रास्तों के लिए उद्धरणों का उपयोग कर सकते हैं जिनमें संपत्तियों में व्हाट्सएप है जो MSBuild को अनुगामी स्लैश की आवश्यकता है।

मुझे पता है कि यह एक पुरानी पोस्ट है, लेकिन मुझे ऐसा लगता है कि मुझे इसे किसी के साथ साझा करने की आवश्यकता है :-)


45

समाधान
/ p: PublishDir सेटिंग के आसपास के उद्धरण निकालें

यानी
उद्धरण के बजाय

/p:PublishDir="\\BSIIS3\c$\DATA\WEBSITES\benesys.net\benesys.net\TotalEducationTest\"  

कोई उद्धरण का उपयोग करें

/p:PublishDir=\\BSIIS3\c$\DATA\WEBSITES\benesys.net\benesys.net\TotalEducationTest\  

मुझे खेद है कि मैंने अपनी खोज को जल्द पोस्ट नहीं किया। मुझे वास्तव में फिर से शोध करना पड़ा कि क्या बदला जाना चाहिए। किसने सोचा होगा कि उद्धरणों को हटाने का काम किया होगा? मुझे इसका पता तब चला जब एक सहकर्मी ने दूसरे समाधान के लिए निर्माण किया और देखा कि उसमें उद्धरण नहीं थे।


2
यह बहुत अजीब है। मेरे मामले में मुझे वही त्रुटि मिली लेकिन समस्या यह है कि मेरे पास इसमें एक खाली जगह थी। उद्धरण जोड़ने से समस्या ठीक हो गई।
मार्क अर्नोट

मेरे पास @MarkArnott जैसा ही मुद्दा था, यह रिक्त स्थान के साथ काम नहीं करता था या रिक्त स्थान से बच गया था, लेकिन उद्धृत किया था।
ज़िट्रैक्स

7
संभवतः आपके मार्ग में अंतिम बैकस्लैश समापन डबल-उद्धरण से बच रहा था। यदि सही है, तो आपको दोहरे उद्धरण चिह्नों को हटाने की आवश्यकता नहीं है, बल्कि इसके बजाय आपको अपने बैकस्लैश से बचने की आवश्यकता है।
कार्ल जी

2
याद रखें, dir पाथ में रिक्त स्थान को
बचाये

30

गेट बैश पर मुझे दोहरे स्लैश जैसे मापदंडों को निर्दिष्ट करना पड़ा:

MSBuild.exe "Path\to\Solution.sln" //p:Platform="x86" //p:Configuration=Release //p:AppxBundlePlatforms="x86" 

27

यह समस्या तब प्रकट होती है जब आपके पास कोई पथ या कोई गुण होता है जिसमें कोई स्थान होता है और जिसे उद्धृत नहीं किया जाता है।

आपके सभी गुणों और पथ ने उनके चारों ओर उद्धरण दिया है, यह अजीब है। त्रुटि संदेश Educationएक स्विच के रूप में इंगित करता है, /p:ProductName="Total Education TEST"यह देखने के लिए कि क्या यह काम करता है को हटाने का प्रयास करें ।


4
इस समस्या से छुटकारा पाने के लिए फ़ोल्डर पथ में स्थान से बचें।
गोपीनाथ

1
@ जूलियन होराउ: मैंने कोशिश की MSBuild.exe C:\BuildAgent\work\4c7b8ac8bc7d723e\WebService.sln /p:Configuration=Release /p:OutputPath=bin /p:DeployOnBuild=True /p:DeployTarget=MSDeployPublish /p:MsDeployServiceUrl=https://204.158.674.5/msdeploy.axd /p:username=Admin /p:password=Password#321 /p:AllowUntrustedCertificate=True /p:DeployIisAppPath=Default WebSite/New /p:MSDeployPublishMethod=WMSVC। यह मुझे एक त्रुटि देता है MSBUILD : error MSB1008: Only one project can be specified. Switch: WebSite/New। मुद्दा क्या हो सकता है?
नेविन राज विक्टर

@NevinRajVictor बहुत देर हो चुकी है, लेकिन शायद आपको उद्धरण देना चाहिएDefault WebSite/New
एंडरसन

11

आपको पथ और फ़ाइल नाम के आसपास qoutes लगाने की आवश्यकता है।
इसलिए MSBuild "C: \ Path Name \ File Name.Exe" / [विकल्प] का उपयोग करें


4

आपके द्वारा प्रकाशित पथ के अंत में अनुगामी बैकस्लैश या स्लैश को निकालने का प्रयास करें और url इंस्टॉल करें

/p:PublishDir="\\BSIIS3\c$\DATA\WEBSITES\benesys.net\benesys.net\TotalEducationTest"
/p:InstallUrl="https://www.benesys.net/benesys.net/TotalEducationTest"

आपने \ "और (या) /" के साथ वर्णों के एक विशेष अनुक्रम को हिट किया होगा, लेकिन मुझे पता लगाने के लिए cmd.exe में पर्याप्त नहीं है।

मैं व्यक्तित्व हमेशा पॉवर्स का उपयोग करता हूं: यह अधिक अनुकूल और शक्तिशाली है!

आशा करता हूँ की ये काम करेगा!


3

Vs2012 में बस डिफ़ॉल्ट TFS टेम्पलेट "DefaultTemplate .... xaml" का उपयोग करके एक बिल्ड परिभाषा "टेस्ट बिल्ड" बनाने की कोशिश करें (आमतौर पर इसकी एक प्रति)

यह सामान्य आत्म-व्याख्या-त्रुटि के साथ विफल हो जाएगा: "MSBUILD: त्रुटि MSB1008: केवल एक परियोजना निर्दिष्ट की जा सकती है। विच: क्रियाएँ"

डिफ़ॉल्ट TFS टेम्प्लेट में कहीं न कहीं कुछ "गायब हैं इसलिए msbuild पैरामीटर के रूप में एक गैर-बची हुई निर्देशिका को रिक्त स्थान के रूप में प्राप्त करेगा ताकि कई परियोजनाओं में परिणाम होगा (!)

तो एक ही समय में TFS बिल्ड डेफिनिशन नामों, बहुत उदास और सरल आप में रिक्त स्थान का उपयोग न करें


1
यह उत्तर कुछ ख़बर का उपयोग कर सकता है। जिसका पालन करना बहुत मुश्किल है।
TheMayer

1
आपके टीएफएस बिल्ड डेफिनिशन नामों में स्पेस का उपयोग करने के बारे में बात एक अच्छा है! इसने मुझे कई बार पकड़ा है।
वैलेंटाइन

3

त्रुटि मिलने पर मैं पासवर्ड पैरामीटर के आसपास सिंगल कोट्स का उपयोग कर रहा था

/p:password='my secret' खराब

और समस्या को हल करने के लिए दोहरे उद्धरण चिह्नों का उपयोग करने के लिए इसे बदल दिया।

/p:password="my secret" अच्छा

किसी भी पैरामीटर के लिए समान रूप से लागू होता है, जिसमें उन मानों के लिए उद्धरण की आवश्यकता होती है जिनमें एक स्थान होता है।


3

मेरे लिए मैं क्लोजिंग कोट जोड़ना भूल गया था

/p:DeployOnBuild=true;OutDir="$(build.artifactstagingdirectory)

सेवा

/p:DeployOnBuild=true;OutDir="$(build.artifactstagingdirectory)"


मुझे दोहरे उद्धरण चिह्नों की याद आ रही थी।
हबीब

2

भविष्य के पाठकों के लिए।

मुझे यह त्रुटि मिली क्योंकि मेरी निर्दिष्ट लॉग फ़ाइल में एक स्थान था:

इससे पहले:

/l:FileLogger,Microsoft.Build.Engine;logfile=c:\Folder With Spaces\My_Log.log

बाद: (जो इसे हल किया)

/l:FileLogger,Microsoft.Build.Engine;logfile="c:\Folder With Spaces\My_Log.log"

2

फिर भी इसका एक और कारण और समाधान है: जाँच करें कि आपने गलत जगह नहीं रखा है, यानी मापदंडों में; मेरा था dotnet -c Release - o /home/some/path( -और के बीच की जगह पर ध्यान दें o), मैं खुद रास्ते को देखता रहा, जो सही था और मुझे फेंक दिया। उम्मीद है की वो मदद करदे! (यह बाश में था, हालांकि इसे विंडोज पर भी लागू होना चाहिए)


1

इसने मेरे लिए TFS MSBuild Argument में काम किया। स्लैश की संख्या पर ध्यान दें।

/ p: DefaultPackageOutputDir = "\\ Rdevnet \ Visual Studio प्रोजेक्ट्स \ Insurance \"


1

यदि आप जेनकिंस में डिफ़ॉल्ट कार्यक्षेत्र का उपयोग करते हैं, तो यह हो सकता है। बिना किसी रिक्त स्थान के कस्टम कार्यस्थान स्थान का उपयोग करें।

यहां छवि विवरण दर्ज करें


1

यदि आप Azure DevOps MSBuildकार्य का उपयोग कर रहे हैं , तो त्रुटि दोहरे कॉन्फ़िगरेशन ध्वज के कारण हो सकती है। कृपया सुनिश्चित करें कि आपने $(BuildConfiguration)MSBuild Arguments एक के बजाय निर्दिष्ट बॉक्स में रखा है: यहां छवि विवरण दर्ज करें


1

यदि आप उपयोग कर रहे हैं Any CPU इसे एकल उद्धरणों में रखना पड़ सकता है।

निश्चित रूप से डॉकफाइल में दौड़ते समय, मुझे एकल उद्धरणों का उपयोग करना पड़ा:

# Fails. Gives: MSBUILD : error MSB1008: Only one project can be specified.
RUN msbuild ConsoleAppFw451.sln /p:Configuration=Debug /p:Platform="Any CPU" 

# Passes. Gives: Successfully built 40163c3e0121
RUN msbuild ConsoleAppFw451.sln /p:Configuration=Debug /p:Platform='Any CPU' 

0

बस किसी के पास मेरे जैसे ही मुद्दा है, तो मैं "/" में से एक "तर्क" से पहले गायब था। विवरण से बहुत स्पष्ट नहीं है। मुझे उम्मीद है इससे किसी को सहायता मिलेगी।


0

मैंने https://www.codingdefined.com/2014/10/solved-msbuild-error-msb1008-only-one.html में दिए गए समाधान का उपयोग किया था और जो समस्या को हल करता है। हमें बस इतना करना है कि कमांड में रिक्त स्थान और '' (चेक बैकस्लैश) चेक करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.