2015-11-10 3 views
6

Я использую ресурс файлов DSC для обновления сервера приложений с помощью последней сборки. Это отлично работает, за исключением файлов .PDB. Они никогда не обновляются. Я воспроизвел это поведение только с одним файлом. Вот пример конфигурацииФайл ресурсов файла DSC, не копирующий файлы PDB

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-файла, за исключением. Такое же поведение проявляется в одном файле, как в блоке PdbFile

Я провел несколько тестов с переименованием файлов, но это не влияет. Это похоже на формат .PDB.

Кто-нибудь видел это поведение, знает, что его вызывает или знает, неверна ли конфигурация выше?

+0

Очень интересно. Что делать, если вы переименуете тот же файл PDB, чтобы иметь другое расширение? Что делать, если вы создаете файл .txt и называете это с помощью .pdb? – briantist

+0

Да, все это. Независимо от имени, файлы содержимого pdb не накладываются, пока другие делают. –

+0

Отличная информация; что, если вы измените контрольную сумму (или вообще не используете ее)? – briantist

ответ

0

Я просто наткнулся на такую ​​проблему. Для меня идеальный обходной путь: Archive

Это работало нормально, по крайней мере для меня

Пример:

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

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

Edit: Другой вариант: использование ModifiedDate ALS Контрольная сумма Test! что кажется наиболее надежным.

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-ресурс:

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

Это может быть полезно.

Смежные вопросы