【问题标题】:how to use sn.exe -Vr如何使用 sn.exe -Vr
【发布时间】:2009-12-04 06:25:49
【问题描述】:

从 MSDN 帮助中,它说 -Vr 选项是:

Registers assembly for verification skipping.

我的问题是,当使用 -Vr 时,它只会更改程序集文件本身还是会更改系统注册表。这很重要,我应该在开发机器还是在最终部署的机器上发出这个命令。

【问题讨论】:

    标签: .net assemblies


    【解决方案1】:

    sn -Vr 在本地计算机的注册表中创建一个条目。它不会修改程序集。您必须在希望跳过验证目标程序集的强名称的每台机器上本地运行 sn -Vr。

    既然您提到您关心的是一台测试机器,您可能需要记住,至少您的一些测试运行确实应该针对应用程序的“出厂”状态运行,其中包括程序集的最终签名。虽然我知道密钥管理问题可能会妨碍将最终签名应用于自动构建,但如果您想模拟最终的执行环境,您最终将需要使用完全签名的程序集进行测试,并且不会跳过验证。

    【讨论】:

    • 嗨妮可,你知道有用户列表参数和没有用户列表参数的区别吗?
    • 如果您不指定用户列表,则会在 HKLM\SOFTWARE\Microsoft\StrongName\Verification 下添加验证跳过条目。如果您确实指定了用户列表,则验证跳过条目仍将添加到同一键下,但它将具有一个额外的 UserList 值,该值指定验证跳过适用的用户。当 .NET 运行时验证程序集的签名时,如果 UserList 存在,它应该只考虑为注册表中的任何给定跳过条目对 UserList 中的用户应用验证跳过。
    【解决方案2】:

    两者都没有。您不应跳过对部署版本的验证。

    【讨论】:

    • 其实不是部署系统,是我的测试系统。请建议。如果我在测试系统中运行-Vr,是否意味着签名根本不会在测试系统中验证?
    • 您需要将其添加到您打算测试的机器上的验证跳过列表中。
    • 如果我只运行“sn -Vr a.dll”,在运行tht命令的机器中是否跳过了a.dll?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多