मैं अपनी बिल्ड प्रक्रिया में एक बग डिबग कर रहा हूं जो कभी-कभी होता है लेकिन मैं इसे सीधे पुन: उत्पन्न नहीं कर सकता। मैं टीमसिटी के साथ msbuild का उपयोग कर रहा हूँ।msbuild में वृद्धिशील साफ क्या है और यह कब ट्रिगर किया जाता है?
Some.Interop.dll
Dependency-> SharedDllABC.dll
SomeService.exe
Depenendcy-> Some.Interop
आमतौर पर अंतिम सेवा exectuable अपनी रिहाई निर्देशिका में हो जाता है:
Some.Interop
SharedDllABC.Dll
ServiceExectuable.exe
हालांकि मुझे लगता है कि कभी कभी तृतीयक निर्भरता हमारे MSBuild लॉग में देख सकते हैं
मैं इस तरह निर्भरता पदानुक्रम है सब कुछ बनने के बाद एक वृद्धिशील स्वच्छ के दौरान हटा दिया जाता है जिसके परिणामस्वरूप:
Some.Interop
ServiceExectuable.exe
,210
आप इसे यहाँ MSBuild लॉग में देख सकते हैं:
[src\SomeService\SomeService.csproj] _TimeStampAfterCompile
[12:32:43]: [src\SomeService\SomeService.csproj] Compile
// some other targets
[12:32:43]: [src\SomeService\SomeService.csproj] _CopyFilesMarkedCopyLocal
[12:32:43]: [_CopyFilesMarkedCopyLocal] Copy
[12:32:43]: [Copy] Copying file from "C:Projects\trunk\src\Some.Interop\bin\Release\Some.Interop.dll" to "bin\Release\Some.Interop.dll".
// some other targets
[src\Project\SomeService\SomeService.csproj] IncrementalClean
[18:54:42]: [IncrementalClean] Delete
[18:54:42]: [Delete] Deleting file "C:\Projects\trunk\src\Project\SomeService\bin\Release\SharedDllABC.dll".
[18:54:42]: [Delete] Deleting file "C:\Projects\trunk\src\Project\SomeServiceService\bin\Release\SharedDllABC.pdb".
[18:54:42]: [src\Project\SomeService\SomeService.csproj] CoreBuild
[18:54:42]: [src\Project\SomeService\SomeService.csproj] AfterBuild
[18:54:42]: [src\Project\SomeService\SomeService.csproj] Build
यह मेरा सीधा MSBuild उत्पादन, मैं सिर्फ इस परियोजना के नाम/dll नाम मेरी उदाहरण मैच के लिए बदल जाता है। जब तक इस वृद्धिशील स्वच्छता हुई है SomeService.csproj
पहले ही बनाया जा चुका है। आप देख सकते हैं कि इसकी प्रतिलिपि नहीं मिल रही है। हालांकि अन्य एमएसबिल्ड लॉग में यह ठीक से कॉपी हो जाता है और फिर वृद्धिशील साफ इसे हटा नहीं देता है।
मुझे लगता है कि this post से वृद्धिशील साफ पिछले बिल्डों से बनाए गए डीएलएल को साफ करना है, लेकिन यह समझा नहीं जाता है कि यह समय कितना समय होता है जब यह डीएलएल नहीं बनाया जाता है। दृश्य स्टूडियो में यह हमेशा भी काम करता है।
मुझे लगता है कि मैं सिर्फ यह क्या में किक करने का कारण बनता है, और हो सकता है क्या बातें मैं जब इस तरह एक स्थिति डीबगिंग के लिए दिखना चाहिए यह जानना चाहेंगे कि Incremental clean
है क्या चाहते हैं, (आदि विधानसभा संस्करणों, timestamps?)
'' IncrementalClean' ग में कार्यान्वित किया जाता: \ Windows \ Microsoft.NET \ फ्रेमवर्क \ v4.0.30319 \ Microsoft.Common.targets'। वहां बहुत सारे तर्क हैं ... यदि आप और जानना चाहते हैं, तो वहां कुछ प्रिंट जोड़ें - ' ', और शायद आप देखेंगे कि तर्क क्या है है। –
Jonathan
मुझे बहुत ही समान समस्याएं आ रही हैं। क्या आपने कभी अपना अपराधी पाया है? –
सेबेस्टियन, मैं इसे कभी भी समझने में सक्षम नहीं था। मैं जो कर रहा हूं वह इस परियोजना पर उस परियोजना से हार्ड निर्भरता पैदा कर रहा था जिसकी आवश्यकता थी। यह आदर्श नहीं था लेकिन यह काम करता है। मेरी टीम के साथ आने वाले कुछ अन्य समाधान अपेक्षित डीएल के परीक्षण के लिए यूनिट परीक्षण बनाने के लिए थे, जो कम से कम विफल बिल्डों को ग्राहकों/परीक्षण मशीनों पर जाने से रोकते थे। – devshorts