के माध्यम से विफल रहता है। मैं एक वीएस। एसएलएन बनाने की कोशिश कर रहा हूं जिसमें एकाधिक C++ .vcproj है। समाधान फ़ाइल सीएमके का उपयोग करके उत्पन्न होती है और मुझे यह हिस्सा जेनकींस में काम कर रहा है (सीएमके बिल्डर प्लगइन के साथ)। समाधान फ़ाइल बनाने के लिए, मैं msbuild का उपयोग कर रहा हूँ। मैं समाधान दोनों दृश्य स्टूडियो और निम्न आदेश के साथ कमांड लाइन से का उपयोग कर निर्माण करने में सक्षम हूँ:एमएसबिल्ड वीएस और कमांड लाइन के माध्यम से काम करता है, लेकिन जेनकींस
C:\Jenkins\workspace\SonioTest>"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe" /t:Rebuild bin/SonIO.sln
यह सफलतापूर्वक बनाता है (एक ही मशीन है कि जेनकींस रहता है पर)।
हालांकि, मैं जेनकींस में निर्माण के इस हिस्से को स्वचालित करने की कोशिश कर रहा हूं और निर्माण C1083
त्रुटियों ("Cannot open source file: '..\path\to\file.ext': No such file or directory
) के साथ विफल होने के समाप्त हो गया है। मैंने जेनकिन्स एमएसबिल्ड प्लगइन दोनों का उपयोग करके और उसी परिणाम के साथ टर्मिनल में "विंडोज बैच कमांड निष्पादित करें" चरण के रूप में टर्मिनल में काम करने वाले सटीक वही कमांड का उपयोग करने का प्रयास किया है।
जब Windows बैच आदेश का निर्माण कदम का उपयोग कर, मैं लॉग में देख सकते हैं कि आदेश निष्पादित किया जा रहा:
C:\Jenkins\workspace\SonioTest>"C:\Windows\Microsoft.NET\Framework\v4.0.30319 msbuild.exe" /t:Rebuild bin/SonIO.sln
... वास्तव में एक है कि कमांड लाइन से काम करता है के रूप में ही है , जिसमें कार्यशील निर्देशिका शामिल है।
मैं जेनकींस को सेवा के रूप में चला रहा हूं और मेरे पास मेरे खाते (व्यवस्थापक विशेषाधिकारों के साथ) सेवा लॉगऑन है। किसी को भी पता है कि जेनकिंस बैच कमांड को निष्पादित करेगा क्या निर्देशिका?
कोई विचार क्यों मैं जेनकींस और कमांड लाइन के बीच व्यवहार के इस अंतर को देख रहा हूं?
मुझे लगता है कि आप% WORKSPACE% –
की तरह एक प्लेसहोल्डर का उपयोग करके अपने समाधान का निरपेक्ष पथ निर्दिष्ट करना एक Windows कमान से "सेट" कर दिया है मैंने सत्यापित किया है कि आदेश एक ही कामकाजी निर्देशिका से जेनकिंस द्वारा चलाया जा रहा है। क्या आपकी टिप्पणी अभी भी लागू होती है? मुझे 100% यकीन नहीं है कि आपका क्या मतलब है। – Kohanz