c# – 在Sn.exe中自动输入密码
我需要创建post build事件来执行以下操作:
sn -i MyKey.pfx MyKeyContainerName tlbimp $(ConfigurationName)MyCom.tlb /out:$(ConfigurationName)NETMyCom.dll /keycontainer:MyKeyContainerName sn -d MyKeyContainerName 当Visual Studio执行第一个语句时,它需要一个密码并等待用户指定并失败.
我尝试使用sn命令行参数指定密码,但我看不到这样做的方法. 请帮忙. 问候, 解决方法
如果像我一样,你没有使用TFS或MSBUILD来构建,那么至少有两种方法:
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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |