2015-11-10 6 views
6

मैं नवीनतम निर्माण के साथ एप्लिकेशन सर्वर को अद्यतन करने के लिए डीएससी फ़ाइल संसाधन का उपयोग कर रहा हूं। यह पीडीबी फाइलों को छोड़कर महान काम करता है। ये कभी अपडेट नहीं होते हैं। मैंने इस व्यवहार को केवल एक फ़ाइल के साथ पुन: उत्पन्न किया है। यहां एक नमूना विन्यासडीएससी फ़ाइल संसाधन फ़ाइल पीडीबी फाइलों की प्रतिलिपि नहीं बना रहा

Configuration FileTestConfiguration { 
    param($HostName) 

    Node $HostName { 
     File AppDirectory { 
     SourcePath = "c:\temp\dsc\source" 
     DestinationPath = "c:\temp\dsc\target" 
     Type = 'Directory' 
     Checksum ='SHA-256' 
     Recurse = $true 
     MatchSource = $true 
    } 
    File PdbFile { 
     SourcePath = "c:\temp\dsc\pdbSource\MyNetHelpers.pdb" 
     DestinationPath = "c:\temp\dsc\pdbTarget\MyNetHelpers.pdb" 
     Checksum ='SHA-256' 
     Recurse = $true 
     MatchSource = $true 
    } 
} 

}

निर्देशिका लक्ष्य से ऊपर विन्यास चल रही निर्देशिका स्रोत को प्रतिबिंबित करेगा, .pdb फ़ाइल के अलावा के बाद है। एक ही व्यवहार को पीडीबीफ़ाइल ब्लॉक

में एक फ़ाइल के साथ प्रदर्शित किया गया है, मैंने फ़ाइलों का नाम बदलने के साथ कई परीक्षण चलाए हैं, लेकिन इससे कोई प्रभाव नहीं पड़ता है। ऐसा लगता है कि पीडीबी प्रारूप से संबंधित है।

क्या किसी ने इस व्यवहार को देखा है, पता है कि इसका कारण क्या है या पता है कि ऊपर कॉन्फ़िगरेशन गलत है या नहीं?

+0

बहुत रोचक। क्या होगा यदि आप एक ही पीडीबी फ़ाइल का एक अलग एक्सटेंशन का नाम बदलते हैं? क्या होगा यदि आप एक .txt फ़ाइल बनाते हैं और नाम .pdb के साथ करते हैं? – briantist

+0

हाँ, यह सब किया। नाम के बावजूद, पीडीबी सामग्री फ़ाइलों को ओवरलाइड नहीं मिलता है जबकि अन्य करते हैं। –

+0

महान जानकारी; क्या होगा यदि आप चेकसम बदलते हैं (या बिल्कुल एक का उपयोग नहीं करते हैं)? – briantist

उत्तर

0

मैं इस तरह के एक मुद्दे पर ठोकर खाई। मेरे लिए एकदम सही वैकल्पिक हल: Archive

यह ठीक काम किया, कम से कम के लिए मुझे

नमूना:

Archive ArchiveSourcezip 
{ 
    Ensure = 'Present' 
    Path = '\\Source\Directory\source.zip' 
    Destination = 'C:\ExtractionPath' 
} 

Log LogExample 
{ 
    Message = 'Archive source.zip was transferred.' 
} 

संपादित करें: एक अन्य विकल्प: उपयोग modifiedDate als Checksum टेस्ट! यह सबसे विश्वसनीय लगता है।

File ScriptsPowerShellPath { 
    Ensure = 'Present' 
    Type = 'Directory' 
    Recurse = $true 
    SourcePath = '\\Server\share' 
    DestinationPath = $env:SystemDrive+'\directrory\target' 
    Force = $true 
    Checksum = 'modifiedDate' 
    MatchSource = $true 
    DependsOn = '[File]ScriptsPath' 
} 

और तुम भी एक के लिए लॉग-संसाधन का उपयोग करना चाहें:

Log LogFileScriptsPowerShellPath { 
    Message = 'Created and filled ScriptsPowerShellPath' 
    DependsOn = '[File]ScriptsPowerShellPath' 
} 

कि उपयोगी हो सकता है।

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