16
A
回答
11
您可以通过使用像反射器或ILSpy工具得到完全合格的名称。选择大会,它应该在它的顶部。对于XNA在ILSpy:
// C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.dll // Microsoft.Xna.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553
如果你不想使用这些工具,你可以计算出使用Windows资源管理器和Visual Studio命令提示符的完全合格的名称。
首先,右键单击程序集DLL - >属性 - >详细信息。在这里你可以找到你的装配的名称,版本和文化。
对于公共密钥,启动Visual Studio命令提示符,然后写:
sn -Tp YourAssembly.dll
它会给你的公钥。
现在您可以伪造完全限定名称。
2
Process[] processlist = Process.GetProcesses();
foreach(Process theprocess in processlist)
{
string strongName = "N/A";
try
{
strongName = Assembly.ReflectionOnlyLoadFrom(theprocess.MainModule.FileName).FullName;
}
catch
{
// System process?
}
Console.WriteLine("Process: {0} ID: {1} Strong Name: {2}", theprocess.ProcessName, theprocess.Id, strongName);
如果知道文件名,您可以处理PE headers to find the strong name signature。 }
11
您可以使用Strong Name工具来确定程序集是否有强命名。在命令提示符下,你可以这样做来验证它是一个强有力的命名程序集。
sn -v "C:\MyAssemblyPath"
,并得到公众的道理,你可以做到这一点
sn -T "C:\MyAssemblyPath"
如果您想获取程序集的全名,包括公共令牌,则可以使用Assembly.FullName。
Assembly.GetExecutingAssembly().FullName;
相关问题
- 1. 我怎样才能看到sdf文件
- 2. 我怎样才能看到MSIL代码
- 3. 我怎样才能看到每一行?
- 4. 我怎样才能看到我上传到Heroku的文件?
- 5. 我怎样才能到我的用户
- 6. 我怎样才能得到
- 7. 我怎样才能得到
- 8. 我怎样才能
- 9. 我怎样才能
- 10. 我怎样才能
- 11. 我怎样才能
- 12. 我怎样才能的MSBuild
- 13. 我怎样才能得到Queryable.Join的MethodInfo
- 14. 我怎样才能得到的数字
- 15. 我怎样才能得到在Android的
- 16. 我怎样才能看到我还剩下多少钱?
- 17. 我怎样才能不名称列
- 18. 我怎样才能在我的课
- 19. 我怎样才能在Django中获得'用户名'的会话
- 20. 我怎样才能得到更好的名称功能参数
- 21. 我怎样才能让我的数字时钟动态?看看我的代码
- 22. 那么我怎样才能看到果冻豆的日志?
- 23. 我们怎样才能看到芹菜的线程?
- 24. 我怎样才能看到在phpmyadimn表中的所有关系
- 25. 我怎样才能看到Foursquare的入住地点?
- 26. 我怎样才能看到特定的路径?
- 27. 我怎样才能看到森林的树木?
- 28. 我怎样才能看到所有的bash历史?
- 29. 我们怎样才能看到没有矩形框的输出
- 30. 我怎样才能看到PHP的结果在div
所以...没有办法从Visual Studio做到这一点,当项目源被加载,然后呢? –
sn -t没有为我工作..我得到“无法将密钥转换为令牌 - 无效的程序集公钥。”保罗吉伦的答案确实有效(-Tp),但我不得不承认,我很沮丧,这不能在VS内完成。不得不求助于VISUAL studio工具的命令行似乎很愚蠢。 –
对不起,它应该是一个大写'T'(更新的答案)。在VS中没有办法做到这一点似乎很奇怪,但是你可以在外部工具列表中添加'sn.exe'并将参数设置为'-T $(TargetPath)',因此可以直接从VS 。我刚刚尝试过,它似乎工作正常,并且每次从“工具”菜单中选择工具时都会显示当前项目的公钥。 – keyboardP