Файл ресурсов файла 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.

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


person Bernard Odoy    schedule 10.11.2015    source источник
comment
Очень интересно. Что, если вы переименуете один и тот же файл PDB, чтобы он имел другое расширение? Что, если вы создадите файл .txt и назовете его .pdb?   -  person briantist    schedule 10.11.2015
comment
Ага, все это сделал. Независимо от имени, файлы содержимого pdb не перекрываются, в отличие от других.   -  person Bernard Odoy    schedule 10.11.2015
comment
Отличная информация; что, если вы измените контрольную сумму (или не используете ее вообще)?   -  person briantist    schedule 10.11.2015
comment
Хорошая мысль по поводу отсутствия контрольной суммы. Я пробовал все другие алгоритмы контрольных сумм, но они не имеют значения. Я проверил, что контрольные суммы файлов также отличаются. Глядя на документы, не имеющие контрольной суммы, значения по умолчанию совпадают с именем, что нехорошо. Другой вариант — использовать значение ModifiedDate для контрольной суммы. Я только что проверил это, и это скопирует все файлы, включая файлы PDB. Похоже, что PDB-файлы с алгоритмом контрольной суммы ведут себя по-другому.   -  person Bernard Odoy    schedule 10.11.2015
comment
Может быть хорошим кандидатом на ошибку Microsoft Connect. Я не могу придумать ни одной причины, по которой контрольная сумма могла бы знать о разных типах файлов (не говоря уже о заботе). Очень странно; Я обязательно учту это в будущих конфигурациях. Я предполагаю, что это должно повлиять на некоторые другие типы файлов.   -  person briantist    schedule 10.11.2015
comment
это как-то исправлено?   -  person Falco Alexander    schedule 04.08.2016


Ответы (1)


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

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

Образец:

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

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

Изменить. Другой вариант: использовать modifiedDate и Checksum 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-Resource:

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

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

person Joerg Hochwald    schedule 26.05.2017