2013-02-26 18 views
5

मेरे पास एक प्रोजेक्ट है जो वाईएक्स का उपयोग कर रहा है। यह मेरी स्थानीय मशीन पर ठीक काम करता है लेकिन जब मैं बिल्ड सर्वर पर प्रकाशित करता हूं तो बिल्ड निम्न के साथ उड़ाता है।बिल्ड सर्वर पर वाईएक्स विफलता

MSBuild से लॉग इन करें

Using "HeatDirectory" task from assembly "C:\Program Files (x86)\WiX Toolset v3.6\bin\\WixTasks.dll". 
Task "HeatDirectory" 
    Command: 
    C:\Program Files (x86)\WiX Toolset v3.6\bin\Heat.exe dir "C:\Builds\3\Project\Foo Bar - CI\Sources\Company.Foobar.UI\obj\BuildServer\Package\PackageTmp\\" -cg Company.Foobar.UI_Project -dr INSTALLLOCATION -scom -sreg -srd -var var.WebServiceProjectDir -ag -sfrag -out web\Company.Foobar.UI.wxs 
    Could not load file or assembly 'file:///C:\Program Files (x86)\WiX Toolset v3.6\bin\Heat.exe' or one of its dependencies. An attempt was made to load a program with an incorrect format. 
    at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) 
    at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) 
    at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) 
    at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark) 
    at System.Reflection.Assembly.LoadFrom(String assemblyFile) 
    at Microsoft.Tools.WindowsInstallerXml.Build.Tasks.WixToolTask.ExecuteToolThread(Object parameters) 

मैं Wix 3.6 बिल्ड सर्वर पर स्थापित किया है और TFS का निर्माण चल रहा है खाता डोमेन व्यवस्थापक समूह में सूचीबद्ध है।

+0

आप पुष्टि करते हैं कि क्या "C: \ प्रोग्राम फ़ाइलें (x86) \ WiX टूलसेट v3.6 \ बिन \ Heat.exe" मौजूद है? –

+0

हां यह अस्तित्व में है। – Cookie

+0

कोशिश करें [असेंबली बाइंड लॉगिंग सक्षम करें] (http://www.hanselman.com/blog/BackToBasicsUsingFusionLogViewerToDebugObscureLoaderErrors.aspx) और देखें कि क्या यह आपको बता सकता है कि कौन सी असेंबली अंतिम कारण है और क्यों। – shambulator

उत्तर

6

वास्तव में यह समस्या आर्किटेक्चर mistmatch के साथ करने के लिए सभी थी। परियोजनाओं में से एक केवल x86 में संकलित है, इसलिए बिल्डर्स को x86 का उपयोग करने के लिए बदलना पड़ा।

संपादित बिल्ड, प्रक्रिया, MSBuildPlatform X86

+1

"एक गलत प्रारूप के साथ एक प्रोग्राम लोड करने के लिए एक प्रयास किया गया था।" मंच असंगतता के लिए एक लाल झंडा है। –

+0

बहुत बहुत धन्यवाद! पूरी तरह से मुझे अन्य निर्भरता मुद्दों में खोदने की कोशिश कर समय का एक गुच्छा बचाया। – SteckDEV

0

"C:\Program Files (x86)\WiX Toolset v3.6\bin\Heat.exe" 

एमएस निर्माण दोहरे उद्धरण में अपने आदेश लपेटकर रास्तों कि यह में रिक्त स्थान के साथ समस्याएं हो सकती कोशिश करो।

+0

बेकार है मैं http://www.chrissurfleet.co.uk/post/2011/06/30/simplify-deployment-with-visual-studio-and-wix.aspx का उपयोग कर रहा हूं ध्यान दें कि गर्मी के लिए कॉल एक का उपयोग कर रहा है कार्रवाई करें ताकि मैं इसके चारों ओर उद्धरण नहीं डाल सकूं। – Cookie

+0

अच्छा विचार, केली, हालांकि इस मामले में त्रुटि संदेश सही exe पथ की तलाश में प्रतीत होता है और बस इसे लोड नहीं कर सकता है। एक लापता निर्भरता की तरह लगता है ... –

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