2009-12-04 72 views
3

使用来自MSDN的帮助下,它说,-Vr选项是:如何SN.EXE -Vr

Registers assembly for verification skipping.

使用-Vr时,我的问题是,将它只能改变汇编文件本身或它也会更改系统注册表。无论我应该在开发机器还是最终部署的机器中发出此命令,这都很重要。

回答

6

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

既然你提到你关心的是一台测试机器,你可能要记住,至少你的一些测试运行真的应该在应用程序的“已发货”状态下运行,这将包括程序集的最终签名。虽然我明白关键管理问题可能会阻止将最终签名应用于自动构建,但如果您想模拟最终的执行环境,最终需要使用完全签名的程序集进行测试,并且不需要验证跳过。

+0

嗨,妮可,你知道用户列表参数和没有用户列表参数之间的区别吗? – 2009-12-08 03:25:46

+1

如果您未指定用户列表,则将在HKLM \ SOFTWARE \ Microsoft \ StrongName \ Verification下添加验证跳过条目。如果您确实指定了用户列表,则验证跳过条目仍将添加到同一个密钥下,但它将具有额外的UserList值,用于指定验证跳过适用的用户。当.NET运行时验证程序集的签名时,如果存在用户列表,它应该仅考虑在用户列表中为用户列表中的任何给定跳过条目应用验证跳过。 – 2009-12-15 15:07:42

-1

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

+0

其实它不是部署系统,它是我的测试系统。请建议。如果我在测试系统中运行-Vr,是否意味着签名不会在测试系统中被验证? – 2009-12-04 06:35:24

+0

您需要在您要测试的机器上添加验证跳过列表。 – 2009-12-04 06:53:03

+0

如果我只运行“sn -Vr a.dll”,a.dll是否在运行tht命令的机器上跳过? – 2009-12-04 08:09:27