31 votes

HintPath sur un ajout d'une référence dans Visual Studio

Je sais que je peux ajouter un HintPath à une Dll externe à l'aide de Visual Studio/TFS trouver la dll lorsqu'il crée.

Ce que je me demandais, c'est... est-il possible d'ajouter plusieurs HintPath?

Par exemple... les développeurs ont leurs Dll pour un endroit et nous faire un GetLatest de ces Dll à un endroit différent sur le serveur d'où la nécessité pour les multiples HintPath.

Que pensez-vous, monde?

32voto

Alex Points 1540

Désolé, vous ne pouvez pas utiliser plusieurs HintPath de l'. Visual Studio/MSBuild ne prend que le dernier <HintPath> définition et ignore toutes les précédentes. Confirmé dans VS2010 et VS2012.

15voto

Maxime Rouiller Points 5987

Cette réponse n'est plus valide. Comme Sardaukar le commentaire dit, Visual Studio toujours aveuglément utilise la dernière HintPath. Alex réponse prend en charge cette.


Alright. Je suis plus rapide que Stackoverflow cette fois. J'ai essayé de l'ajouter et il semble bien fonctionner.

Afin de multiples HintPath EST possible.

Lorsque vous avez ceci:

<Reference Include="System.ComponentModel.Composition.Codeplex">
    <HintPath>..\..\..\MEF2_Preview2\bin\System.ComponentModel.Composition.Codeplex.dll</HintPath>
</Reference>

Vous pouvez simplement ajouter plus d'indicateur de chemin comme ça:

<Reference Include="System.ComponentModel.Composition.Codeplex">
    <HintPath>..\..\..\MEF2_Preview2\bin\System.ComponentModel.Composition.Codeplex.dll</HintPath>
    <HintPath>D:\MEF\System.ComponentModel.Composition.Codeplex.dll</HintPath>
</Reference>

7voto

Michael Hablich Points 138

Vous pouvez utiliser des variables d'environnement pour que. E. g.

<Reference Include="System.ComponentModel.Composition.Codeplex">
    <HintPath>$(PathToDLLs)\MEF2_Preview2\bin\System.ComponentModel.Composition.Codeplex.dll</HintPath>
</Reference>

2voto

Vladimir Shutow Points 101

Ajouter le texte suivant à la fin de votre fichier de projet juste après le commentaire sur les objectifs de la section:

<Target Name="BeforeResolveReferences">
  <CreateProperty Value="YOUR_FIRST_PATH;YOUR_SECOND_PATH;$(AssemblySearchPaths)">
    <Output TaskParameter="Value" PropertyName="AssemblySearchPaths" />
  </CreateProperty>
</Target>

Remplacement d' YOUR_FIRST_PATH et YOUR_SECOND_PATH avec vos chemins d'accès.

Il est important que cela se passe après la ligne suivante ou votre réglage sera remplacé:

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

Avec l' $(AssemblySearchPaths) entrée à la fin de la chaîne de Dll dans vos chemins de remplacer la résolution normale. Si vous la déplacez vers le début de la résolution normale est essayé en premier, et les autres chemins sont vérifiées pour tout ce qui n'était pas trouvé. La résolution normale inclut <HintPath> sections, donc il n'est pas nécessaire de les enlever si vos chemins d'accès viennent d'abord.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X