sn -i MyKey.pfx MyKeyContainernametlbimp $(Configurationname)\MyCom.tlb /out:$(Configurationname)\NETMyCom.dll /keycontainer:MyKeyContainernamesn -d MyKeyContainername
当Visual Studio执行第一个语句时,它需要一个密码并等待用户指定并失败.
Microsoft (R) .NET Framework Strong
name Utility Version 2.0.50727.42
copyright (c) Microsoft Corporation.
All rights reserved.Enter the password for the PKCS#12 key
file: Failed to parse the PKCS#12
blob in mykey.pfx — The handle is
invalID.
我尝试使用sn命令行参数指定密码,但我看不到这样做的方法.
请帮忙.
问候,
希尔米.
a)从脚本运行sn.exe,并将密码写入stdin
请参阅here以获取C#示例:
注意:使用.NET4版本的sn.exe似乎不可能将其作为外部进程执行(至少在windows XP上),并将密码写入stdin(我尝试用C#进行python,sn.exe似乎只需退出而无需等待密码输入).
b)使用已安装的pfx使用sn.exe重新签名密码.
如果您已经安装了pfx文件,那么您可能知道容器名称(通常Visual Studio使用类似VS_KEY_ABAB1234ABAB1234的名称)
如果像我一样,您不知道或记住容器名称,那么只需重新安装pfx文件:
sn -i myPfxfile VS_KEY_ABAB1234ABAB1234
sn.exe会提示您输入密码,因为它会在pfx文件中安装证书.
然后,您可以使sn.exe重新签名您的程序集,而不提示输入密码:
sn -Rca myAssembly.dll myVSkey
以上内容可以在构建脚本中使用,因为不需要交互:-)
请记住检查签名是否真的有效:
sn -v myAssembly.dll总结
以上是内存溢出为你收集整理的c# – 在Sn.exe中自动输入密码全部内容,希望文章能够帮你解决c# – 在Sn.exe中自动输入密码所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)