Ao adicionar uma referência a um assembly localizado no diretório da solução, há alguma maneira de adicioná-lo relativamente, de modo que, quando feito o check-in e check-out de um repositório, ele seja referenciado nos projetos corretamente?
Ao adicionar uma referência a um assembly localizado no diretório da solução, há alguma maneira de adicioná-lo relativamente, de modo que, quando feito o check-in e check-out de um repositório, ele seja referenciado nos projetos corretamente?
Respostas:
Para expandir o comentário original de Pavel Minaev - A GUI para Visual Studio oferece suporte a referências relativas com a suposição de que seu .sln é a raiz da referência relativa. Portanto, se você tiver uma solução C:\myProj\myProj.sln
, todas as referências adicionadas em subpastas de C:\myProj\
são adicionadas automaticamente como referências relativas.
Para adicionar uma referência relativa em um diretório separado, como C:/myReferences/myDLL.dll
, faça o seguinte:
Edite o <HintPath> para ser igual a
<HintPath>..\..\myReferences\myDLL.dll</HintPath>
Isso agora faz referência C:\myReferences\myDLL.dll
.
Espero que isto ajude.
Sim, apenas crie um diretório em sua solução como lib / e, em seguida, adicione sua dll a esse diretório no sistema de arquivos e adicione-o ao projeto (Adicionar-> Item Existente-> etc). Em seguida, adicione a referência com base em seu projeto.
Eu fiz isso várias vezes em svn e em cvs.
No VS 2017 é automático. Então, Add Reference
tão normalmente.
Observe que Reference Properties
o caminho absoluto é mostrado, mas o .vbproj/.csproj
relativo é usado.
<Reference Include="NETnetworkmanager">
<HintPath>..\..\libs\NETnetworkmanager.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
Provavelmente, a maneira mais fácil de conseguir isso é simplesmente adicionar a referência ao assembly e, em seguida (manualmente) corrigir a representação textual da referência no arquivo de projeto do Visual Studio correspondente (extensão .csproj) de modo que se torne relativo.
Já fiz isso várias vezes no VS 2005 sem problemas.
Posso estar errado aqui, mas parece que a resposta é bastante óbvia: observe os caminhos de referência nas propriedades do projeto. Em nossa configuração, adicionei nossa pasta de repositório comum, para a janela ref path GUI, assim
Dessa forma, posso copiar minhas dlls (prontas para publicação) para esta pasta e cada desenvolvedor agora obtém a DLL atualizada sempre que compilar a partir desta pasta.
Se a dll for encontrada na Solução, o construtor deve priorizar a versão local sobre a versão da equipe publicada.
Como mencionado antes, você pode editar manualmente o .csproj
arquivo do seu projeto para aplicá-lo manualmente.
Também percebi que o Visual Studio 2013 tenta aplicar um caminho relativo ao hintpath de referência, provavelmente devido a uma tentativa de tornar o arquivo de projeto mais portátil.