我想比较两个dll的内容。我需要确保它们都有完全相同的代码、方法、属性、版本等。
它必须在Powershell中完成。我在两个内容相同但构建时间不同的dll上尝试了以下脚本。它输出";文件不同";。我认为这可能是构建元数据,或者是使两个dll不同的东西?
$fileA = "<PathToFile>.dll"
$fileB = "<PathToFile>.dll"
if((Get-FileHash $fileA).hash -ne (Get-FileHash $fileB).hash)
{
"files are different"
}
else
{
"Files are the same"
}
hash仅检查两个文件是否相同。如果有一个比特不同,则散列将不同。
要查找差异,请使用以下函数:
function dll_compare(){
param($path1,$path2)
$first = Get-ChildItem -Path $path1 -Filter *.dll
$second = Get-ChildItem -Path $path2 -Filter *.dll
$diff = Compare-Object -ReferenceObject $first -DifferenceObject $second -Property Name, Length, LastWriteTime, VersionInfo -PassThru |
Select Name, Length, LastWriteTime, sideindicator,@{n = "path"; e ={ $_.fullname }}, @{n = "VersionInfo"; e = { $_.VersionInfo.Productversion }Productversion}}
$diff}