gpt4 book ai didi

c# - 检测程序集是否以普通 .Net、CF 或 Silverlight 为目标的最简单方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 22:23:47 25 4
gpt4 key购买 nike

我找到了 this question已经在 SO 上,但它只涵盖 CF,所以我的问题是:如何检测程序集是否是为普通 .Net、CF 或 Silverlight 构建的?

最佳答案

使用与链接问题的答案相同的方法:

public enum AssemblyType 
{
CompactFramework,
Silverlight,
FullFramework,
NativeBinary
}

public AssemblyType GetAssemblyType(string pathToAssembly)
{
try
{
Assembly asm = Assembly.LoadFrom(pathToAssembly);
var mscorlib = asm.GetReferencedAssemblies().FirstOrDefault(a => string.Compare(a.Name, "mscorlib", true) == 0);
ulong token = BitConverter.ToUInt64(mscorlib.GetPublicKeyToken(), 0);

switch (token)
{
case 0xac22333d05b89d96:
return AssemblyType.CompactFramework;
case 0x89e03419565c7ab7:
return AssemblyType.FullFramework;
case 0x8e79a7bed785ec7c:
return AssemblyType.Silverlight;
default:
throw new NotSupportedException();
}
}
catch (BadImageFormatException)
{
return AssemblyType.NativeBinary;
}
}

关于c# - 检测程序集是否以普通 .Net、CF 或 Silverlight 为目标的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2178550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com