Compartilhar via


Método References.Add

Adiciona uma nova referência ao projeto.

Namespace:  VSLangProj
Assembly:  VSLangProj (em VSLangProj.dll)

Sintaxe

'Declaração
Function Add ( _
    bstrPath As String _
) As Reference
Reference Add(
    string bstrPath
)
Reference^ Add(
    [InAttribute] String^ bstrPath
)
abstract Add : 
        bstrPath:string -> Reference
function Add(
    bstrPath : String
) : Reference

Parâmetros

  • bstrPath
    Tipo: String

    Obrigatório. O caminho de um suplemento COM ou.Referência do NET Framework.

    Este parâmetro pode levar de três formas:

    Uma simples.Nome do objeto de NET Framework, como, por exemplo, "Sistema".

    R.Nome de arquivo do NET Framework (arquivo. tlb,. dll ou. ocx).

    Um arquivo de biblioteca COM (arquivo. exe,. dll,. ocx ou. tlb). Para objetos COM, o caminho deve incluir um nome completo de caminho e, como "D:\SomeApplication\SomeApp.dll". Consulte restrições na seção "Referências COM" abaixo sobre como adicionar referências de arquivo COM. exe.

Valor de retorno

Tipo: VSLangProj.Reference
Retorna um Reference objeto.

Comentários

Será gerado um erro se não houver nenhuma biblioteca de tipos no arquivo indicado pelo bstrPath parâmetro ou a referência não pode ser resolvidos (consulte a seção de resolução de referência).

Este método não gera um erro se existe uma referência do projeto com o mesmo Identity, Culture, MajorVersion, MinorVersion, BuildNumber, e RevisionNumber como a nova referência. Essa condição indicaria que a referência indicada pela bstrPath parâmetro já foi adicionado ao projeto. Em vez disso, o ProjectItem para a referência correspondente já no projeto será retornada.

Se uma referência com o mesmo Identity , mas diferentes MajorVersion, MinorVersion, BuildNumber, RevisionNumber, ou Culture for encontrado no projeto, o método gera um erro.

Para remover uma referência, use o Remove.

Referências COM

Esse método retorna o Reference o objeto para a primeira biblioteca de tipos no arquivo sendo referenciado.

Este método adiciona todos os objetos encontrados no arquivo de biblioteca de tipo e quaisquer dependências desses objetos. Portanto, uma única chamada para esse método pode resultar em mais de uma referência que está sendo adicionada ao References coleção.

Arquivos do COM. exe podem ser adicionados como referências, se eles contêm bibliotecas de tipos. Nesse caso, as referências a bibliotecas de tipo registrado todas as contidas no arquivo. exe são adicionadas.

.NET Framework referências

Esse método retorna o Reference o objeto para o assembly sendo referência.

Essas referências não tem um arquivo de biblioteca de tipo, portanto, nenhuma assemblies dependentes são adicionados como referências ao projeto.

Se a referência for um assembly que também incorporou bibliotecas de tipos, apenas uma referência ao assembly é adicionada.

Referências a.Arquivos do NET Framework. exe são permitidos.

Resolução de referência

Quando o arquivo de projeto é salvo, os caminhos para as referências não são salvas como parte do projeto. Isso permite que o arquivo de projeto a ser compartilhada entre computadores com mais facilidade. Por exemplo, System. dll pode estar armazenado em C:\Bigfolder no computador A, e ele pode ser armazenado em D:\Smallfolder no computador b. Para.NET Framework faz referência, apenas o nome do assembly de referência é persistente. Portanto, para System. dll, "Sistema" é mantido.

Compiladores só aceitam referências na forma de caminho completo mais o nome do arquivo, por exemplo, C:\Bigfolder\system.dll. Portanto, deve haver alguma forma consistente de localização de assemblies em tempo de design. Um assembly é resolvido se o caminho completo para o assembly pode ser localizado. O caminho de resolvido é o caminho completo para a referência. Continuando com o exemplo de sistema, se System. dll for encontrado em C:\Bigfolder, em seguida, quando System. dll estiver resolvido, seu caminho resolvido é C:\Bigfolder\System.dll.

Para resolver uma referência, o ambiente de desenvolvimento cria um nome de pesquisa da referência e procura a referência. O nome de pesquisa é criado para que inclua a extensão. dll, pois o nome salvo para uma referência pode ou não incluir a extensão. dll. As duas referências, ReferenceOne e ReferenceTwo.dll, terão os nomes, ReferenceOne.dll e ReferenceTwo.dll, respectivamente.

O ambiente de desenvolvimento procura o nome na seguinte ordem, parando assim que uma correspondência for encontrada:

  1. Na hierarquia do projeto.

  2. No caminho de pesquisa de referências, que é uma configuração de nível de projeto. Para obter mais informações, consulte ReferencePath.

  3. No conjunto de diretórios, o seletor de componente usa ao enumerar referências. Este conjunto de diretórios é armazenado no registro durante a instalação.

Cada referência é resolvida quando um projeto é carregado. A resolução também ocorre em uma nova referência quando o bstrPath parâmetro para o Add método é algo diferente de um caminho completo.

Se uma referência não pode ser resolvida, um erro é gerado. Referências COM ser resolvidas, porque o nome de caminho completo é necessário o bstrPath parâmetro. Se a bstrPath parâmetro é o.Nome do NET Framework (por exemplo, SomeObject) ou o.NET Framework arquivo nome sem o caminho (por exemplo, SomeObject.dll), então é possível que a referência não pode ser resolvida, e um erro será gerado.

Exemplos

' Macro Editor
Imports VSLangProj
Sub AddExample()
   ' This example assumes that the first project in the solution is 
   ' either a Visual Basic or C# project.
   Dim aVSProject As VSProject = _
      CType(DTE.Solution.Projects.Item(1).Object, VSProject)
        
   Dim refs As References = aVSProject.References
   ' Adds a reference to a compiled .NET project.
   refs.Add("C:\path\program.dll")
   ' Adds a reference to an installed ActiveX control.
   refs.Add("C:\WINNT\system32\msmask32.ocx")
   ' Adds a reference to System.dll as an example of adding a
   ' reference using just the simple name.
   refs.Add("System")
End Sub

Segurança do .NET Framework

Consulte também

Referência

References Interface

Namespace VSLangProj