2011-01-04 22 views
11

मैं अपने .NET 4 ऐप के लिए इंस्टॉलेशन बनाने के लिए MSBuild (CruiseControl के तहत) का उपयोग करने का प्रयास कर रहा हूं। स्थापना निर्माण को पूर्व शर्त (.NET 4 और Windows इंस्टालर 4.5 इस मामले में स्थापित करने के लिए एक बूस्टरैपर बनाना चाहिए), यह GenerateBootstrapper Task का उपयोग करके किया जाता है।MSBuild: त्रुटि MSB3147: आवश्यक फ़ाइल 'setup.bin' नहीं मिल सका

विकास मशीन पर कमांड लाइन से MSBuild.exe project.msbuild.xml चल रहा है, जिसमें वीएस 2010 स्थापित है, ठीक काम करता है। निर्माण मशीन है, जो केवल नवीनतम विंडोज 7 एसडीके है, पर चल रहा है त्रुटि के साथ विफल:

(ProductDistributions target) -> bootstrapper.xml(236,5): error MSB3147: 
Could not find required file 'setup.bin' in '<project path>\ProductDistributions\Engine'. 

देव मशीनों पर, मैं एक setup.bin फ़ाइल युक्त एक C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Engine फ़ोल्डर है, लेकिन निर्माण मशीन पर कोई C:\Program Files\Microsoft SDKs\Windows\v7.1 के अंदर फ़ोल्डर (7.1 बनाम 7.0 ए स्पष्ट रूप से है क्योंकि वीएस -2010 7.0 ए इंस्टॉल करता है, लेकिन स्टैंडअलोन एसडीके 7.1 है)।

इसके अलावा, निर्माण मशीन पर वहाँ HKLM\Software\Microsoft\GenericBootstrapper\ अंदर कोई 4.0 रजिस्ट्री कुंजी है, लेकिन देव मशीनों एक c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\

के एक मूल्य के साथ एक पथ स्ट्रिंग वाली है ऐसा लगता है कि वहाँ कुछ मैं पर स्थापित करने की आवश्यकता है जैसे बूटस्ट्रैपर फ़ोल्डर को "माइक्रोसॉफ्ट एसडीके \ विंडोज \ v7.1" (और रजिस्ट्री कुंजियों को सेटअप करें) में जोड़ने के लिए मशीन बनाएं, लेकिन मुझे यकीन नहीं है कि यह क्या है। कोई विचार जो मुझे प्राप्त करने की ज़रूरत है?

या क्या मेरे इंस्टॉलेशन को काम करने के लिए मुझे कुछ और चाहिए?

अपडेट किया गया: मैं इस पल में काम कर रहा है मैन्युअल रूप से निर्माण मशीन पर एक देव मशीन से 7.0a bootstrapper फ़ोल्डर को कॉपी, और मैन्युअल रूप से HKLM\Software\Microsoft\GenericBootstrapper\4.0 रजिस्ट्री कुंजी है कि पथ जोड़कर। जो काम करता प्रतीत होता है, लेकिन ऐसा लगता है कि समस्या को ठीक करने के लिए मुझे ऐसा नहीं करना चाहिए। तो अगर किसी के पास कम-हैकी समाधान है तो मैं सराहना करता हूं।

+0

7.0 ए बूटस्ट्रैपर की प्रतिलिपि बनाने के उपरोक्त परिवर्तन और मैन्युअल रूप से reg कुंजी जोड़ने से मेरी समस्या ठीक हो गई। मैं अभी भी कम हैकी समाधान की तलाश में हूं, – IndigoDelta

+2

क्या आप उस मशीन पर .Net 4.5 बीटा स्थापित करना चाहते थे? मेरे वर्कस्टेशन पर मुझे कुछ ऐसी ही समस्याएं थीं जब तक कि मैंने 4.5 को पूरी तरह से अनइंस्टॉल नहीं किया (4.5 और वीएस 11 को संदर्भित/निकालने के कार्यक्रमों में संदर्भित किया गया) और एमएसडीएन से 4.0 को पुनः स्थापित किया। –

+0

नहीं, यह सवाल जनवरी 2011 से था - इसलिए 4.5 बीटा उपलब्ध होने से पहले। – Wilka

उत्तर

4

टी his blog entry के अनुसार बूटस्ट्रैप फ़ाइलों को .NET Framework SDK इंस्टॉल के दौरान स्थापित किया गया है। यह रजिस्ट्री प्रविष्टियों को भी दिखाता है जो बूटस्ट्रैपर निर्देशिका को देखने के लिए खोजे जाते हैं।

आप .NET Framework SDK को स्थापित करने का प्रयास कर सकते हैं या फ़ाइलों को कॉपी करके और रजिस्ट्री प्रविष्टियों को जोड़कर इसे मैन्युअल रूप से सेट अप कर सकते हैं।

+1

हम्म, बिल्ड मशीन में पहले से ही .NET SDK और Windows SDK था (जिसे इसे भी इंस्टॉल करना चाहिए), लेकिन मैंने किसी भी तरह से पुनर्स्थापित करने का प्रयास किया और इससे समस्या ठीक नहीं हुई।मैंने सिर्फ फाइलों की प्रतिलिपि बनाने पर विचार किया था, लेकिन मुझे यकीन नहीं था कि इससे अन्य समस्याएं पैदा होंगी - सभी देव मशीनों में 7.0 ए है और बिल्ड मशीन 7.1 हैं, इसलिए 7.0 ए की प्रतिलिपि काम नहीं कर सकती है। मुझे लगता है कि मैं देखता हूं कि क्या होता है। – Wilka

+1

ऐसा लगता है कि यह काम करता है, लेकिन यह गलत समाधान की तरह महसूस करता है। अगर कोई कम हैकी समाधान के साथ आता है तो मैं इस जवाब को स्वीकार करने से पहले थोड़ा इंतजार करूंगा। धन्यवाद हालांकि, अब मैंने फिर से निर्माण स्थापित किया है। – Wilka

+0

भविष्य के संदर्भ के लिए: [यह ब्लॉग] (http://jake.ginnivan.net/clickonce-bootstrapping-errors/) दिखाता है कि किसी भी तरह से विंडोज़ फ़ाइल के संदर्भ को खो देता है। इसलिए, रजिस्ट्री कुंजी जोड़ना और इंजन फ़ोल्डर में इंजन फ़ोल्डर की प्रतिलिपि बनाना इस समस्या को हल करता है। –

2

मुझे एक ही समस्या का सामना करना पड़ रहा है लेकिन मैंने फ़ाइलों पर मैन्युअल रूप से प्रतिलिपि बनाने और रजिस्ट्री को हैक करने की कोशिश नहीं की है, हालांकि मैंने अन्य से भी सुना है कि उन्होंने सफलता भी की है।

आदेश में इस के लिए एक और अधिक वास्तविक समाधान प्राप्त करने के लिए मैं एक feature request on the Connect.Microsoft.com site बना लिया है आदेश आवश्यक विकास फाइलों के साथ एक बिल्ड सर्वर स्थापित करने के लिए एक आसान तरीका के लिए प्रदान करने के लिए दृश्य स्टूडियो की स्थापना के कम से कम कुछ प्रकार लागू करने के लिए। कृपया इस मुद्दे पर ध्यान देने में सहायता के लिए फीचर अनुरोध पर वोट दें और/या टिप्पणी करें।

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