Al agregar una referencia a un ensamblado ubicado dentro del directorio de la solución, ¿hay alguna forma de agregarlo relativamente, de modo que cuando se registre dentro y fuera de un repositorio se haga referencia correctamente en los proyectos?
Al agregar una referencia a un ensamblado ubicado dentro del directorio de la solución, ¿hay alguna forma de agregarlo relativamente, de modo que cuando se registre dentro y fuera de un repositorio se haga referencia correctamente en los proyectos?
Respuestas:
Para ampliar el comentario original de Pavel Minaev: la GUI para Visual Studio admite referencias relativas con el supuesto de que su .sln es la raíz de la referencia relativa. Entonces, si tiene una solución C:\myProj\myProj.sln
, cualquier referencia que agregue en subcarpetas C:\myProj\
se agregará automáticamente como referencias relativas.
Para agregar una referencia relativa en un directorio separado, como C:/myReferences/myDLL.dll
, haga lo siguiente:
Edite <HintPath> para que sea igual a
<HintPath>..\..\myReferences\myDLL.dll</HintPath>
Esto ahora hace referencia C:\myReferences\myDLL.dll
.
Espero que esto ayude.
Sí, simplemente cree un directorio en su solución como lib /, y luego agregue su dll a ese directorio en el sistema de archivos y agréguelo en el proyecto (Agregar-> Elemento existente-> etc.). Luego agregue la referencia basada en su proyecto.
He hecho esto varias veces bajo svn y bajo cvs.
En VS 2017 es automático. Tan Add Reference
como de costumbre.
Tenga en cuenta que en Reference Properties
la ruta absoluta se muestra, pero en .vbproj/.csproj
relativa se utiliza.
<Reference Include="NETnetworkmanager">
<HintPath>..\..\libs\NETnetworkmanager.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
Probablemente, la forma más fácil de lograr esto es simplemente agregar la referencia al ensamblaje y luego (manualmente) parchear la representación textual de la referencia en el archivo de proyecto de Visual Studio correspondiente (extensión .csproj) de modo que se vuelva relativo.
He hecho esto muchas veces en VS 2005 sin ningún problema.
Puede que me quede fuera de aquí, pero parece que la respuesta es bastante obvia: mire las rutas de referencia en las propiedades del proyecto. En nuestra configuración, agregué nuestra carpeta de repositorio común, a la ventana GUI de ruta de referencia, así
De esa manera puedo copiar mis dlls (listos para publicar) en esta carpeta y cada desarrollador ahora obtiene la DLL actualizada cada vez que crea desde esta carpeta.
Si el dll se encuentra en la Solución, el constructor debe priorizar la versión local sobre la versión publicada del equipo.
Como se mencionó anteriormente, puede editar manualmente el .csproj
archivo de su proyecto para aplicarlo manualmente.
También noté que Visual Studio 2013 intenta aplicar una ruta relativa a la ruta de sugerencia de referencia, probablemente debido a un intento de hacer que el archivo del proyecto sea más portátil.