2013-10-18 5 views
12

मैं अपने विंडोज स्टोर एप्लिकेशन के लिए एक कमांड लाइन पैकेज तैनात करने का प्रयास कर रहा हूं।त्रुटि के कारण MSBuild विफल रहता है APPX0002: कार्य 'GenerateAppxPackageRecipe' विफल रहा। मान शून्य नहीं हो सकता

मेरे आदेश पंक्ति निर्देश हैं:

msbuild /m /p:Configuration=Debug /p:Platform=x86 /target:Build 

मैं Windows 8.1

मैं निम्नलिखित त्रुटि मिलती है साथ VS2013 व्यावसायिक उपयोग कर रहा हूँ:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\AppxPackage\Microsoft.AppXPackage.Targets(1224,9): error APPX0002: Task 'GenerateAppxPackageRecipe' failed. Value cannot be null.\r [C:\Path\Project.csproj]

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\AppxPackage\Microsoft.AppXPackage.Targets(1224,9): error APPX0002: Parameter name: source\r [C:\Path\Project.csproj]

मैं कैसे इसका समाधान हो जाएगा?

+0

स्कॉट - बिल्ड सर्वर जहां आप MSBUILD चला रहे हैं, क्या यह विंडोज 8 मशीन है? – Isaiah4110

+0

क्या यह स्वयं वीएस से निर्मित होने पर ठीक काम करता है? क्या आपने/एम स्विच को हटाने का प्रयास किया था (कभी-कभी एमएसबिल्ड उलझन में निर्माण निष्पादित करते समय भ्रमित हो जाता है) – Isantipov

+0

@ यशायाह 4110 बिल्ड सर्वर एक विंडोज 8.1 मशीन –

उत्तर

9

यह त्रुटि msbuild.exe के सही संस्करण का उपयोग करके हल की गई थी VS2013 स्थापित के साथ एक क्लीन बिल्ड सर्वर पर, msbuild.exe स्थापित की गई दो प्रतियां (कम से कम) हैं। हमारे मामले में स्थापित स्थानों थे:

C:\Program Files (x86)\MSBuild\12.0\Bin\msbuild.exe

और

C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe

.Net Framework फ़ोल्डर में एक के बाद एक है कि हम त्रुटियों दिया। प्रोग्राम फ़ाइलें फ़ोल्डर में स्थापित संस्करण का उपयोग करने से समस्या हल हो गई।

+1

हमारे पास एक प्रोजेक्ट है जो विंडोज फोन 8 और विंडोज स्टोर दोनों को लक्षित करता है। हमारा WP8 बिल्ड 4.0.3031 9 संस्करण के साथ ठीक काम करता है, लेकिन ऐसा लगता है कि विंडोज स्टोर बिल्ड को MSBuild \ 12.0 संस्करण की आवश्यकता है। – amacleod

1

त्रुटि के पुन: उत्पन्न करने वाले कोड के बिना आपकी सहायता करना असंभव है। मुझे संदेह है कि कुछ संपत्ति VS (जैसे VisualStudioVersion) के निर्माण के दौरान सही ढंग से हल नहीं होती है और कमांड लाइन से पारित होने की आवश्यकता होती है। वीएस आपकी परियोजनाओं के निर्माण के लिए एमएसबिल्ड का भी उपयोग करता है, इसलिए वीएस और सीएमडी से बिल्ड लॉग की तुलना करने से आपको समस्या को ट्रैक करने में मदद मिलनी चाहिए।

मेरा सुझाव है कि आप बिल्ड लॉग बनाने और कैप्चर करने के बजाय डायग्नोस्टिक, क्लीन सॉल्यूशन के लिए विजुअल स्टूडियो के बिल्ड आउटपुट वर्बोजिटी सेट करते हैं। फिर क्लीन समाधान और डायग्नोस्टिक सेट के साथ कमांड लाइन से डायग्नोस्टिक और/फ्लैश स्विच पर सेट करें (फाइल पर लॉग इन करें, क्योंकि डायग्नोस्टिक बिल्ड लॉग कंसोल विंडो में विश्लेषण करने के लिए बहुत लंबा तरीका है)।

वीएस आउटपुट में कमांड लाइन आउटपुट की तुलना करें। मतभेदों की तलाश करें। शब्दकोष के नैदानिक ​​स्तर के साथ, संभावना है, आपको पता चलेगा कि क्या गुम है (मुझे VisualStudioVersion चर के कारण cmd से निर्माण करने में विफल होने वाली डेटाबेस परियोजनाओं के साथ समान समस्याएं ठीक से हल नहीं की जा रही हैं, इसलिए मैंने इसे कमांड लाइन से पारित किया)।

एनबी: डायग्नोस्टिक लॉग बहुत वर्बोज़ जो विश्लेषण को कठिन बनाता है: मैं विस्तृत वर्बोसिटी स्तर से शुरू करूंगा।

1

मैंने "प्रोजेक्ट"/बिन फ़ोल्डर से सभी फ़ाइलों/फ़ोल्डरों को हटा दिया है, समाधान को साफ किया है और सफलता के साथ पुनर्निर्माण किया है!

0

हाइब्रिड ऐप (मेरे मामले में corodova) पर इस मुद्दे का सामना करने वाले लोगों के लिए, मैन्युअल रूप से बिल्ड फ़ोल्डर को हटाएं और VS से पुन: निर्माण करें। मानक साफ समाधान ने काम नहीं किया।

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