2010-07-01 13 views
10

मैं एक परियोजना के बाद निर्माण घटना है कि एक निश्चित निर्देशिका में एक dll xcopies है:के साथ एक परियोजना MSBuild'ing के बाद निर्माण xcopy घटना

xcopy "$ (TARGETDIR) $ (टार्गेटनाम) .dll "" $ (SolutionDir) .. \ UdpLocationService \ बिन \ प्लगइन्स \ "/ दि/व xcopy" $ (TARGETDIR) $ (टार्गेटनाम) .pdb "" $ (SolutionDir) .. \ UdpLocationService \ बिन \ प्लगइन्स \ "/ दि/व

हालांकि, मैं CruiseControl.NET एक बिल्ड सर्वर के रूप में स्थापित किया है और MSBuild इस xcopy के बाद निर्माण घटना की वजह से है कि परियोजना के निर्माण पर विफल हो रहा है:

एमएसबी 3073: कमांड "xcopy" सी: \ बिल्ड \ सेवाएं \ विंडोज \ वाहन सर्वर \ प्लगइन्स \ Payload \ bin \ Debug \ Payload.dll "" अपरिभाषित .. \ UdpLocationService \ bin \ plugins \ "/ d/y xcopy "C: \ बिल्ड \ सेवाएं \ Windows \ VehicleServer \ प्लगइन्स \ पेलोड \ बिन \ डीबग \ Payload.pdb" "अपरिभाषित .. \ UdpLocationService \ बिन \ प्लगइन्स \"/दि/व "में कोड 4. साथ बाहर निकल गया माइक्रोसॉफ्ट.कॉमोन.targets (3397, 13)

यह तय करने के लिए कोई सुझाव? धन्यवाद,

जस्टिन

उत्तर

4

इन चरणों का पालन करें:

  • अपनी परियोजना फ़ाइल अनलोड (जैसे * .csproj)
  • संपादन
  • खोजें AfterBuild के लिए अपनी परियोजना फ़ाइल खोलने को लक्षित
  • XCopy के दो आविष्कारों को दो अलग-अलग निष्पादन कार्यों में अलग करें
  • अपने परिवर्तनों और रिलाओ को सहेजें डी आपकी प्रोजेक्ट फ़ाइल
+0

धन्यवाद, कि पहले त्रुटि, लेकिन दूसरी नहीं तय: MSB3073: कमांड "xcopy" C: \ \ सेवाएं \ Windows का निर्माण \ VehicleServer \ प्लगइन्स \ पेलोड \ बिन \ डीबग \ Payload.pdb "" * अपरिभाषित * .. \ UdpLocationService \ बिन \ प्लगइन्स \ "/ दि/व" Microsoft.Common.targets (3397, 13) – Justin

+0

में कोड 4. साथ बाहर निकल गया मैं भी जोड़ना चाहिए कोई AfterBuild या csproj फ़ाइल में कार्यकारी नहीं है।यह ऐसा लगता है: xcopy "$ (TargetDir) $ (TargetName) .dll $" (SolutionDir) .. \ UdpLocationService \ bin \ plugins \ "/ d/y xcopy "$ (TargetDir) $ (TargetName) .pdb" "$ (SolutionDir) .. \ UdpLocationService \ bin \ plugins \"/d/y Justin

+0

कौन सा संस्करण क्या आप विजुअल स्टूडियो का उपयोग कर रहे हैं? –

22

मैं अभी टीमसिटी के साथ एक ही समस्या में भाग गया।

यहां समस्या यह है कि आपकी बिल्ड फ़ाइल में $ (SolutionDir) संपत्ति है। आप MSBuild करने के लिए अपने कॉल में यह निर्धारित नहीं किया है (यही कारण है कि आप अपने उत्पादन में शब्द अपरिभाषित देखें)। संपत्ति सेट, इस तरह के साथ

कॉल MSBuild:

msbuild myproject.csproj /property:SolutionDir="solution directory"\ 

कहाँ "समाधान निर्देशिका" अपने समाधान फ़ाइल युक्त निर्देशिका है। पिछली स्लैश पर ध्यान दें, आपको यह सुनिश्चित करने के लिए आवश्यकता होगी कि पथ सही तरीके से बनाया गया हो। सही <PostBuildEvent> ऊपर

<SolutionDir Condition="'$(SolutionDir)'=='' or '$(SolutionDir)'=='*Undefined*'">..\</SolutionDir> 

:

+0

या आप डबल कोट्स के अंदर पीछे की स्लैश शामिल कर सकते हैं - बस इसे किसी अन्य बैकस्लैश से बचाना याद रखें। तो मेरे मामले में, कॉल msbuild myproject.csproj/property होगा: SolutionDir = "% teamcity.build.checkoutdir% \\" –

7

मैं Microsoft.SqlServer.Compact nuget पैकेज (जो एक समान के बाद निर्माण स्क्रिप्ट कहते हैं), के साथ समस्याओं के लिए इस तय जोड़कर। आप अपने प्रोजेक्ट लेआउट से मेल खाने के लिए सापेक्ष पथ को समायोजित करना चाहते हैं।

+2

यह त्रुटि किसी समाधान के बजाय प्रोजेक्ट बनाने के दौरान हो सकती है। जब ऐसा होता है, $ (SolutionDir) वास्तव में * अपरिभाषित * है और उपरोक्त समाधान सीमा के चारों ओर मिलता है। – Philippe

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