17,741
社区成员
发帖
与我相关
我的任务
分享
public static bool IsDotNetAssembly3(string fileName)
{
bool result = true;
Mono.Cecil.AssemblyDefinition myLibrary = null;
try
{
myLibrary = Mono.Cecil.AssemblyFactory.GetAssembly (fileName);
}
catch (Mono.Cecil.Binary.ImageFormatException)
{
// for win32 dll
result = false;
}
catch (ArgumentOutOfRangeException)
{
// for win32 exe
result = false;
}
return result && myLibrary != null;
}
/// <summary>
/// Verifies whether it is a .NET file.
/// </summary>
/// <param name="fileName">File name</param>
/// <returns>true if it is .NET, false if else.</returns>
public static bool IsDotNetAssembly(string fileName) {
bool result = true;
try {
System.Reflection.Assembly.LoadFrom(fileName);
} catch (BadImageFormatException ex) {
int errorCode = System.Runtime.InteropServices.Marshal.GetHRForException(ex);
if (errorCode == COR_E_ASSEMBLYEXPECTED)
{
result = false;
}
}
return result;
}
private const int COR_E_ASSEMBLYEXPECTED = -2146234344;