Share via


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

  1. Iniciar o Desassemblador do MSIL (ILDASM.exe).

  2. Carregar o arquivo que deseja testar.

  3. 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

  1. Chamar o GetAssemblyName método, passando o caminho completo do arquivo e o nome do arquivo que você está testando.

  2. 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

Guia de Programação C#

Referência

Conjuntos e (guia de programação C#) no cache do conjunto de módulos (assembly) global

AssemblyName