Como: Determinar se um arquivo é um assembly (guia de programação translation from VPE for Csharp)
Um arquivo é um assembly se e somente se ele é gerenciado e contém uma entrada de assembly em seus metadados.Para obter mais informações sobre assemblies e metadados, consulte o tópico Manifesto do Assembly.
Como determinar manualmente se um arquivo é um assembly
Iniciar o Desassemblador do MSIL (ILDASM.exe).
Carregar o arquivo que deseja testar.
If ILDASM relata que o arquivo não é um arquivo executável portável (PE) e, em seguida, não é um conjunto de módulos (assembly).Para obter mais informações, consulte Como: Exibir conteúdo do assembly.
Como determinar programaticamente se um arquivo é um assembly
Chamar o GetAssemblyName método, passando o caminho completo do arquivo e o nome do arquivo que você está testando.
If a BadImageFormatException exceção é lançada, o arquivo não é um assembly.
Exemplo
Este exemplo testa uma DLL para verificar se ele é um 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.");
}
catch (System.BadImageFormatException)
{
System.Console.WriteLine("The file is not an Assembly.");
}
catch (System.IO.FileLoadException)
{
System.Console.WriteLine("The Assembly has already been loaded.");
}
}
}
/* Output (with .NET Framework 3.5 installed):
Yes, the file is an Assembly.
*/
The GetAssemblyName método carrega o arquivo de teste e libera uma vez que as informações são lidas.
Consulte também
Tarefas
Solucionando problemas de exceções: Sistema.BadImageFormatException
Conceitos
Referência
Conjuntos e (guia de programação C#) no cache do conjunto de módulos (assembly) global