【发布时间】:2015-11-10 20:21:47
【问题描述】:
我正在使用 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格式有关。
有没有人看到这种行为,知道是什么原因造成的或者知道上面的配置是否不正确?
【问题讨论】:
-
非常有趣。如果您重命名同一个 PDB 文件以具有不同的扩展名怎么办?如果你创建一个 .txt 文件并用 .pdb 命名会怎样?
-
是的,做到了。无论名称如何,pdb 内容文件都不会被覆盖,而其他文件会覆盖。
-
很棒的信息;如果您更改校验和(或根本不使用)怎么办?
-
关于无校验和的好想法。我已经尝试过所有其他校验和算法,但它们并不重要。我确实验证了文件校验和也不同。查看没有校验和的文档默认匹配名称,这是不好的。另一种选择是将值 modifiedDate 用于校验和。我只是对此进行了测试,这将复制所有文件,包括 PDB 文件。使用校验和算法的 PDB 似乎有不同的行为
-
可能是 Microsoft Connect 错误的良好候选者。我想不出为什么校验和会知道不同的文件类型(更不用说关心了)。很奇怪;我肯定会在未来的配置中注意这一点。我想它一定会影响其他一些文件类型。
标签: powershell dsc