我在一个文件夹中有很多程序集。只有部分标记为延迟签名。
现在,我必须签署所有标记延迟签名的程序集。
如何识别哪个程序集标记为延迟签名,哪个不是?
答案 0 :(得分:6)
您需要使用sn -vf
验证强名称签名自我一致性。如果-vf是 指定,强制验证即使在注册表中被禁用。
答案 1 :(得分:3)
您可以运行sn -v "path to your assembly"
。如果程序集被延迟签名,这将输出xxx is a delay-signed or test-signed assembly
。
如果您更喜欢在.NET中执行此操作,则可能需要使用StrongNameSignatureVerificationEx
来检查签名(http://blogs.msdn.com/b/shawnfa/archive/2004/06/07/150378.aspx)
[DllImport("mscoree.dll", CharSet = CharSet.Unicode)]
static extern bool StrongNameSignatureVerificationEx(string wszFilePath, bool fForceVerification, ref bool pfWasVerified);