【问题标题】:Check strong name of .net assembly on deployment machine检查部署机器上 .net 程序集的强名称
【发布时间】:2014-05-21 10:55:33
【问题描述】:

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

【问题讨论】:

  • 你能复制一些exe到那个服务器吗?
  • @WouterdeKort,不......这是不允许的。我需要使用那台机器上可用的工具。他们有命令提示符和powershell。我需要检查近 400 个 dll,即使我知道只有 1 个要检查。

标签: .net .net-assembly strongname


【解决方案1】:

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

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

【讨论】:

  • 我将它与更多的 powershell 命令一起使用(我是 powershell 的菜鸟)并得到了我想要的。丹克斯雄。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-06
    • 1970-01-01
    • 2013-07-20
    • 2010-11-16
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    相关资源
    最近更新 更多