# How to: Determine if a file is an assembly

A file is an assembly if and only if it is managed, and contains an assembly entry in its metadata. For more information on assemblies and metadata, see Assembly manifest.

## How to manually determine if a file is an assembly

1. Start the Ildasm.exe (IL Disassembler).

2. Load the file you want to test.

3. If ILDASM reports that the file is not a portable executable (PE) file, then it is not an assembly. For more information, see the topic How to: View assembly contents.

## How to programmatically determine if a file is an assembly

1. Call the AssemblyName.GetAssemblyName method, passing the full file path and name of the file you are testing.

2. If a BadImageFormatException exception is thrown, the file is not an assembly.

## Example

This example tests a DLL to see if it is an assembly.

class TestAssembly
{
static void Main()
{

try
{
System.Reflection.AssemblyName testAssembly =
System.Reflection.AssemblyName.GetAssemblyName(@"C:\Windows\Microsoft.NET\Framework\v3.5\System.Net.dll");

System.Console.WriteLine("Yes, the file is an assembly.");
}

catch (System.IO.FileNotFoundException)
{
System.Console.WriteLine("The file cannot be found.");
}

{
System.Console.WriteLine("The file is not an assembly.");
}

{
}
}
}
/* Output (with .NET Framework 3.5 installed):
Yes, the file is an assembly.
*/

Module Module1
Sub Main()
Try
Dim testAssembly As Reflection.AssemblyName =
Reflection.AssemblyName.GetAssemblyName("C:\Windows\Microsoft.NET\Framework\v3.5\System.Net.dll")
Console.WriteLine("Yes, the file is an Assembly.")
Catch ex As System.IO.FileNotFoundException
Console.WriteLine("The file cannot be found.")
Console.WriteLine("The file is not an Assembly.")