检查部署计算机上.net程序集的强名称

时间:2014-05-21 10:55:34

标签: .net .net-assembly strongname

这就是场景......我在远程机器上部署了一个dll,它具有所需的.NET框架,但没有Visual Studio和工具。在同一天,我为dll创建了3个具有不同强名称的构建。我需要验证远程计算机上的强名称,但我没有获得该dll副本的奢侈。如果没有远程计算机上的SDK,我该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以运行以下PowerShell命令,您应该在其中插入程序集的路径和名称:

powershell.exe -command "[System.Reflection.AssemblyName]::GetAssemblyName('mydll.dll').FullName"

答案 1 :(得分:0)

以上将不起作用 - 无论程序集是否为强命名都返回相同的结果。只有延迟签名才能通过该测试。

Get-ChildItem *.dll | % { 
    Write-Host "ps: " -NoNewLine
    [System.Reflection.AssemblyName]::GetAssemblyName($_).FullName
    Write-Host "sn: " -NoNewLine
    sn -vf $_
} 
ps: MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=11a11111a1111111
sn: MyAssembly.1.1.13.dll is a delay-signed or test-signed assembly

ps: MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=11a11111a1111111
sn: MyAssembly.1.1.15.pre.dll is valid