Visual Studio: chemins de références d’assemblage relatifs

Lors de l’ajout d’une référence à un assembly situé dans le répertoire de la solution, y a-t-il un moyen de l’append relativement, de sorte que lorsqu’il est archivé et sorti d’un référentiel, il soit correctement référencé dans les projets?

Pour développer le commentaire original de Pavel Minaev – L’interface graphique de Visual Studio prend en charge des références relatives en supposant que votre fichier .sln est la racine de la référence relative. Donc, si vous avez une solution C:\myProj\myProj.sln , toutes les références que vous ajoutez dans les sous-dossiers de C:\myProj\ sont automatiquement ajoutées en tant que références relatives.

Pour append une référence relative dans un répertoire distinct, tel que C:/myReferences/myDLL.dll , procédez comme suit:

  1. Ajoutez la référence dans l’interface graphique de Visual Studio en cliquant avec le bouton droit sur le projet dans l’Explorateur de solutions et en sélectionnant Ajouter une référence …
  2. Recherchez le * .csproj où cette référence existe et ouvrez-le dans un éditeur de texte
  3. Editez le pour qu’il soit égal à

    ..\..\myReferences\myDLL.dll

Cela fait maintenant référence à C:\myReferences\myDLL.dll .

J’espère que cela t’aides.

Oui, créez simplement un répertoire dans votre solution comme lib /, puis ajoutez votre dll à ce répertoire dans le système de fichiers et ajoutez-le dans le projet (Ajouter-> Elément existant-> etc.). Ajoutez ensuite la référence en fonction de votre projet.

Je l’ai fait plusieurs fois sous svn et sous cvs.

Probablement, le moyen le plus simple d’y parvenir est d’append simplement la référence à l’assembly, puis (manuellement) de corriger la représentation textuelle de la référence dans le fichier de projet Visual Studio correspondant (extension .csproj) pour qu’il devienne relatif.

J’ai fait beaucoup de fois dans VS 2005 sans aucun problème.

Dans VS 2017, c’est automatique. Il suffit donc d’ Add Reference comme d’habitude.

Notez que, dans Reference Properties le chemin absolu est affiché, mais dans .vbproj/.csproj relatif est utilisé.

  ..\..\libs\NETnetworkmanager.dll True  

Comme mentionné précédemment, vous pouvez modifier manuellement le fichier .csproj votre projet afin de l’appliquer manuellement.

J’ai également remarqué que Visual Studio 2013 tente d’appliquer un chemin d’access relatif au chemin de référence de référence, probablement en raison d’une tentative de rendre le fichier de projet plus portable.