Como: Adicionar ou remover referências usando o Gerenciador de Referências

Você pode usar a caixa de diálogo do Gerenciador de Referências para adicionar e gerenciar referências aos componentes que você, a Microsoft ou outra empresa desenvolveram.Se você estiver desenvolvendo um aplicativo Windows Store, seu projeto referencia automaticamente qualquer SDK Windows 8 e .NET Framework.Se estiver desenvolvendo outro tipo de projeto, você deve adicionar estas referências ao projeto manualmente.

Observação de cuidadoCuidado

É possível adicionar referências em outros tipos de projetos usando a caixa de diálogo Adicionar Referência.Para obter mais informações, consulte Como adicionar ou remover referências usando a caixa de diálogo Adicionar Referência.

Adicionar e remover referências

Para adicionar uma referência em um Projeto C# ou Visual Basic

  1. Na barra de menu, escolha Arquivo, Abrir.

  2. Navegue até a solução ou o projeto.

  3. Em Gerenciador de Soluções, abra o menu de atalho do nó do projeto e escolha Adicionar Referência.

  4. Especifique as referências para adicionar, e escolha o botão OK.

Para remover uma referência, abra o menu de atalho e escolha Remover.

Adicionar uma referência em um Projeto C++.

  1. Na barra de menu, escolha Arquivo, Abrir.

  2. Navegue até a solução ou o projeto.

  3. Em Gerenciador de Soluções, abra o menu de atalho do nó do projeto e escolha Referências.

  4. Na caixa de diálogo Páginas de Propriedades, escolha o botão Adicionar Nova Referência.

  5. Na caixa de diálogo Adicionar Referência, especifique as referências para adicionar e clique no botão OK.

Para remover uma referência, abra o menu de atalho e escolha Remover.

O Gerenciador de Referências abre e lista as referências disponíveis por grupo.O tipo de projeto determina qual dos seguintes grupos são exibidos:

  • Assemblies, com os subgrupos de Framework e Extensions.

  • Solução, com o subgrupo de Projetos.

  • Windows, com os subgrupos Core e Extensions.Você pode explorar as referências no Windows SDK ou nos SDKs de extensão usando o Pesquisador de Objetos.

  • Procurar, com o subgrupo Recente.

Guia Assemblies

A guia Assemblies lista todos os assemblies do .NET Framework que estão disponíveis para consulta.A guia Assemblies não lista assemblies de cachê de assembly global (GAC) porque os assemblies no GAC fazem parte do ambiente de tempo de execução.Se você implantar um aplicativo que contém uma referência a um assembly registrado no GAC, o assembly não será implantado ou copiado com o aplicativo, independentemente da configuração do Local da Cópia.Para obter mais informações, consulte Referências do Projeto.

Ao adicionar manualmente uma referência a qualquer namespace EnvDTE (EnvDTE, EnvDTE80, EnvDTE90, EnvDTE90a ou EnvDTE100), defina a propriedade de Inserir Tipos Interop da referência como Falso na janela Propriedades.Definir essa propriedade como Verdadeiro poderá causar problemas de compilação devido a determinadas propriedades de EnvDTE que não podem ser inseridas.

Todos os projetos da área de trabalho contêm uma referência implícita a mscorlib.Os projetos do Visual Basic contêm uma referência implícita em Microsoft.VisualBasic.No Visual Studio 2012, todos os projetos contêm uma referência implícita a System.Core, mesmo se for removido da lista de referências.

Se um tipo de projeto não oferecer suporte a Assemblies, a guia não aparecerá na caixa de diálogo Gerenciador de Referências.

A guia Assemblies consiste em duas subguias:

  1. O Framework lista todos os assemblies que constituem o Framework de destino.

    • Os assemblies anunciados estão no Framework completo e estão enumerados na lista de Frameworks quando o projeto tem como objetivo um perfil do Framework de destino.Os assemblies anunciados são cinzas para diferenciá-los dos assemblies que existem no perfil do Framework de destino do projeto.Por exemplo, se um projeto tem como objetivo o .NET Framework 4 Client, a lista do Framework exibirá assemblies anunciados do .NET Framework 4.Quando um usuário adiciona um assembly anunciado, ele será notificado que, depois que a caixa de diálogo Gerenciador de Referências for fechada, o projeto será redirecionado ao .NET Framework 4 e o assembly anunciado serão adicionados.

    • Os projetos para aplicativos do Windows Store contêm referências a todos os assemblies do .NET para aplicativos da Windows Store de destino por padrão na criação do projeto.Em projetos gerenciados, um nó somente leitura na pasta Referências em Gerenciador de Soluções indica a referência a todo o Framework.Consequentemente, a guia Framework não enumerará nenhum dos assemblies do Framework e exibirá a seguinte mensagem: “Todos os assemblies do Framework já estão referenciados.Use o Pesquisador de Objetos para explorar as referências no Framework.” Para projetos da área de trabalho, a guia Framework enumera os assemblies do Framework de destino, e o usuário deve adicionar as referências que o aplicativo exige.

  2. As extensões listam todos os assemblies que os fornecedores externos de componentes e controles desenvolveram para estender o Framework de destino.Dependendo da finalidade do aplicativo do usuário, esses assemblies podem ser necessários.

    • As extensões são populadas enumerando-se os assemblies registrados nos seguintes locais:

      32-bit machine:
      HKEY_CURRENT_USER\SOFTWARE\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
      64-bit machine:
      HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
      And older versions of the [Target Framework Identifier]
      

      Por exemplo, se um projeto tem como destino o .NET Framework 4 em um computador de 32 bits, as extensões enumerarão os assemblies registrados em \Microsoft\.NETFramework\v4.0\AssemblyFoldersEx\, \Microsoft\.NETFramework\v3.5\AssemblyFoldersEx\, \Microsoft\.NETFramework\v3.0\AssemblyFoldersEx\, and \Microsoft\.NETFramework\v2.0\AssemblyFoldersEx\.

Guia COM

A guia COM lista todos os componentes COM disponíveis para consulta.Se você deseja adicionar uma referência a uma DLL COM registrada que contém um manifesto interno, cancele o registro da DLL primeiro.Caso contrário, em vez de adicionar a referência do assembly como uma DLL nativa, o Visual Studio a adicionará como um Controle do ActiveX.

Se um tipo de projeto não oferecer suporte ao COM, a guia não aparecerá na caixa de diálogo Gerenciador de Referências.

Guia Solução

A guia Solução lista todos os projetos compatíveis dentro da solução atual, na subguia Projetos.

Um projeto pode referenciar outro projeto que tenha como destino uma versão diferente do .NET Framework.Por exemplo, você pode criar um projeto que tenha como destino o .NET Framework 4, mas que faça referência a um assembly que foi criado para o .NET Framework 2.Porém, o projeto do .NET Framework 2 não pode referenciar um projeto do .NET Framework 4.Para obter mais informações, consulte Destinando uma versão do .NET Framework específica ou perfil.

Um projeto que tem como destino o .NET Framework 4 é incompatível com um projeto que tenha como destino o .NET Framework 4 Client Profile.

No Visual Studio 2012, uma referência de arquivo em vez de uma referência de projeto será criada se um projeto tiver como destino o .NET Framework 4 e um outro projeto tiver como destino uma versão anterior.

Um projeto que tem como destino o .NET para aplicativos da Windows Store não pode adicionar uma referência de projeto a um projeto que tem como destino o .NET Framework e vice-versa.

Guia Windows

A guia Windows lista todos os SDKs específicos às plataformas na qual sistemas operacionais Windows estão em execução.

Você pode gerar um arquivo WinMD no Visual Studio de duas maneiras:

  • Projetos gerenciados do Windows Store do aplicativo: os projetos do aplicativo Windows Store podem produzir binários WinMD definindo Propriedades do Projeto | Tipo de Saída = Arquivo WinMD.O nome do arquivo WinMD deve ser o namespace do superconjunto de todos os namespaces existentes dentro dele.Por exemplo, se um projeto consiste nos namespaces A.B e A.B.C, os possíveis nomes para o WinMD emitido serão A.winmd e A.B.winmd.Se um usuário entrar em uma Propriedade de Projeto | Nome de Assembly ou Propriedades de Projeto | Valor do namespace separado do conjunto de namespaces no projeto ou se não houver nenhum namespace de superconjunto em um projeto, um aviso de compilação será gerado: “A.winmd” não é um nome de arquivo .winmd válido para esse assembly.Todos os tipos em um arquivo de metadados do Windows devem existir em um namespace secundário do nome do arquivo.Tipos que não existem em um namespace secundário do nome de arquivo não poderão ser localizados no tempo de execução.Nesse assembly, o menor namespace comum é “CSWSClassLibrary1”.A área de trabalho do Visual Basic ou um projeto do Visual C# só podem consumir WinMDs gerados usando Windows 8 SDKs, conhecidos como primeira parte do WinMDs, e não podem gerar WinMDs.

  • Projetos nativos do aplicativo Windows Store: um arquivo WinMD nativo consiste apenas em metadados.Sua implementação existe em um arquivo separado da DLL.É possível gerar binários nativos escolhendo o modelo de projeto do componente de Tempo de Execução do Windows na caixa de diálogo Novo Projeto ou a partir de um projeto em branco e alterando as propriedades de projeto para gerar um arquivo WinMD.Se o projeto consiste em namespaces separados, um erro de compilação dirá ao usuário para combinar os namespaces ou executar a ferramenta MSMerge.

A guia Windows consiste em dois subgrupos.

Subgrupo Núcleo

O subgrupo Núcleo lista todos os WinMDs (para elementos de Tempo de Execução do Windows) no SDK para a versão de destino do Windows.

Os projetos de aplicativos Windows Store contêm referências a todos os WinMDs no Windows 8 SDK por padrão na criação do projeto.Em projetos gerenciados, um nó somente leitura na pasta Referências em Gerenciador de Soluções indica a referência a todo o Windows 8 SDK.Consequentemente, o subgrupo Núcleo no Gerenciador de Referências não enumerará alguns assemblies do Windows 8 SDK e exibirá uma mensagem: “O SDK do já está referenciado.Use o Pesquisador de Objetos para explorar as referências no SDK Windows.”

Em projetos da área de trabalho, o subgrupo Núcleo não é exibido por padrão.Você pode adicionar o Tempo de Execução do Windows ao abrir o menu de atalho do nó do projeto, escolhendo Descarregar Projeto, adicionando o seguinte trecho e reabrindo o projeto (no nó do projeto, escolha Recarregar Projeto).Quando você invoca a caixa de diálogo Gerenciador de Referências, o subgrupo Núcleo é exibido.

  <PropertyGroup>
    <TargetPlatformVersion>8.0</TargetPlatformVersion>
  </PropertyGroup>

Verifique se marcou a caixa de seleção Windows nesse subgrupo.Você deve conseguir usar elementos de Tempo de Execução do Windows.No entanto, você também pode querer adicionar o System.Runtime, no qual o Tempo de Execução do Windows define algumas classes e interfaces padrão, como IEnumerable, usadas nas bibliotecas do Tempo de Execução do Windows.Para obter mais informações sobre como adicionar o System.Runtime, consulte Aplicativos da área de trabalho gerenciados e Tempo de Execução do Windows.

Subgrupos Extensões

As extensões listam o usuário de SDKs que estendem a plataforma de destino do Windows.Essa guia é exibida somente para projetos de aplicativo Windows Store.Os projetos de área de trabalho não exibirão essa guia porque podem consumir apenas arquivos de primeira parte .winmd.

O SDK é uma coleção de arquivos que o Visual Studio trata como um único componente.Na guia Extensões, SDKs que se aplicam ao projeto do qual a caixa de diálogo Gerenciador de Referências foi invocada são listados como entradas únicas.Quando adicionado a um projeto, todo o conteúdo do SDK é consumido pelo Visual Studio de modo que o usuário não precisa realizar uma ação adicional para aproveitar os conteúdos do SDK no IntelliSense, na caixa de ferramentas, no designer, no Pesquisador de Objetos, na criação, implantação, depuração nem nos pacotes.Para obter informações sobre como exibir o SDK na guia Extensões, consulte Como: criar um Kit de desenvolvimento de Software.

ObservaçãoObservação

Se um projeto referencia o SDK que depende de outro SDK, o Visual Studio não consumirá o segundo SDK a menos que o usuário adicione manualmente uma referência ao segundo SDK.Quando um usuário escolhe o SDK na guia Extensões, a caixa de diálogo Gerenciador de Referências ajuda o usuário a identificar dependências do SDK listando não apenas o nome e a versão do SDK mas também o nome de todas as dependências do SDK no painel de detalhes.Se um usuário não observar as dependências e adicionar somente aquele SDK, o MSBuild solicitará que o usuário adicione dependências.

Se um tipo de projeto não oferecer suporte às Extensões, a guia não aparecerá na caixa de diálogo Gerenciador de Referências.

Botão Procurar

Você pode usar o botão Procurar para procurar um componente no sistema de arquivos.

Um projeto pode referenciar um componente que tenha como destino uma versão diferente do .NET Framework.Por exemplo, você pode criar um aplicativo que tem como destino o .NET Framework 4 Client Profile, que referencia um componente que tem como destino o .NET Framework 2.Para obter mais informações, consulte Destinando uma versão do .NET Framework específica ou perfil.

Você deve evitar adicionar referências de arquivo às saídas de outro projeto na mesma solução, porque essa tática pode causar erros de compilação.Em vez disso, use a guia Solução da caixa de diálogo Gerenciador de Referências para criar referências projeto a projeto.Essa tática torna o desenvolvimento em equipe mais fácil, permitindo um melhor gerenciamento das bibliotecas de classes criadas em seus projetos.Para obter mais informações, consulte Solucionando Problemas de Referências Quebradas.

Não é possível navegar até o SDK e adicioná-lo ao projeto.Você pode apenas procurar um arquivo (por exemplo, um assembly ou um .winmd) e adicioná-lo ao seu projeto.

Ao fazer uma referência de arquivo a um WinMD, o layout previsto é que os arquivos FileName.winmd, FileName.dll e FileName.pri sejam colocados um ao lado do outro.Se você referenciar um WinMD nos seguintes cenários, um conjunto incompleto de arquivos será copiado no diretório de saída do projeto e, consequentemente, falhas de compilação e de tempo de execução ocorrerão.

  • Componente nativo: um projeto nativo criará um WinMD para cada conjunto de namespaces separados e uma DLL que consiste na implementação.O WinMDs terá nomes distintos.Ao fazer referência a esse arquivo de componente nativo, o MSBuild não reconhecerá que os WinMDs nomeados de forma diferente formam um componente.Consequentemente, somente o FileName.dll de nome idêntico e o FileName.winmd serão copiados, e ocorrerão erros de tempo de execução.Para resolver esse problema, crie uma SDK de Extensão.Para obter mais informações, consulte Como: criar um Kit de desenvolvimento de Software.

  • Consumindo controles: um controle XAML consiste em, no mínimo, FileName.winmd, FileName.dll, FileName.pri, XamlName.xaml e ImageName.jpg.Quando o projeto é compilado, os arquivos de recursos associados com a referência de arquivo não serão copiados no diretório de saída do projeto, e apenas FileName.winmd, FileName.dll e FileName.pri serão copiados.Um erro de compilação é registrado para informar ao usuário que os recursos XamlName.xaml e ImageName.jpg estão ausentes.Para ter êxito, o usuário precisará copiar manualmente esses arquivos de recurso no diretório de saída do projeto para a compilação e a depuração/tempo de execução.Para resolver esse problema, crie um SDK de Extensão seguindo as etapas em Como: criar um Kit de desenvolvimento de Software ou edite o arquivo do projeto para adicionar a propriedade a seguir:

    <PropertyGroup>
    <GenerateLibraryOutput>True</GenerateLibraryOutput>
    </PropertyGroup>
    
    ObservaçãoObservação

    Se você adicionar a propriedade, a compilação pode ficar mais lenta.

Recente

Assemblies, COM, Windows e Navegador suportam uma guia Recente, que enumera a lista de componentes adicionados recentemente aos projetos.

Pesquisar

A barra de pesquisa na caixa de diálogo Gerenciador de Referências opera na guia que está no foco.Por exemplo, se um usuário digitar “Sistema” na barra de pesquisa enquanto a guia Solução estiver no foco, a pesquisa não retornará nenhum resultado a menos que a solução consista em um nome de projeto com “Sistema”.

Consulte também

Tarefas

Como adicionar ou remover referências usando a caixa de diálogo Adicionar Referência

Conceitos

Gerenciando referências do projeto