Question

J'ai un projet stocké dans un référentiel Subversion.

Dans ce référentiel, dans un dossier différent, j'ai un ensemble de bibliothèques que j'utilise dans bon nombre de mes projets. Ces bibliothèques sont stockées sous forme de fichiers binaires, c.-à-d. les dll, pdb et xml.

Voici un exemple de mise en page:

<repo-url>
    \Libraries
        \SQLite
        \SystemHooks
        \Moq

Dans le projet d’application, j’ajoute un " libs " répertoire, puis ajoutez une propriété de référence svn: externals à ce répertoire pour extraire les bibliothèques dont j'ai besoin.

Par exemple, pour ce projet sur lequel je travaille actuellement et qui posait cette question, j'ai besoin de la bibliothèque SystemHooks. Ainsi, dans la structure de dossiers de mon projet, il se présente comme suit:

SketchingMode         <-- solution folder, other projects here as well
    SketchingMode     <-- app project folder
        libs
            SystemHooks

La bonne chose à propos de cela est que je peux plus facilement mettre à jour les bibliothèques et utiliser simplement le spécificateur -rXYZ pour la définition des externes afin d'éviter d'extraire de nouvelles versions que ce que je suis prêt à accepter, et de ne disposer que d'une copie chaque fichier / version de mon référentiel.

La mauvaise chose, dans ce cas particulier, est qu'une des dll du répertoire SystemHooks (2 si je veux aussi la pdb) doit être copiée dans le répertoire de sortie, non référencée par le projet.

Les références fonctionnent normalement, mais une fois que j’ai étiqueté l’un des fichiers de ce répertoire comme étant "Contenu". et " Copier toujours " ou "Copier si plus récent", la structure de répertoires libs et SystemHooks est également copiée dans le répertoire de sortie.

En tant que tel, après une construction, ma structure de répertoires sur disque se présente comme suit:

SketchingMode         <-- solution folder, other projects here as well
    SketchingMode     <-- app project folder
        libs
            SystemHooks
        bin
            Debug               <-- main build output here
                libs
                    SystemHooks <-- 1-2 files in here

Le seul moyen d'éviter cela consiste-t-il à utiliser les étapes post-construction et à simplement ajouter les instructions de copie nécessaires? Ou puis-je modifier en quelque sorte le fichier de projet pour éviter de copier la structure complète de cette manière?

Pour que tout soit clair, dans le répertoire bin \ Debug, je ne veux pas d’une autre couche de libs \ SystemHooks, et tous les fichiers en cours de copie dans le dossier bin \ Debug \ libs \ SystemHooks doivent être copié dans le dossier bin \ Debug à la place.

Était-ce utile?

La solution

Pourquoi ne pas consulter le répertoire libs au niveau de la solution plutôt que du projet? C’est ce que nous faisons depuis que les assemblages de bibliothèques ont tendance à être utilisés par plusieurs projets; placer directement dans le répertoire d'un projet ne constituerait pas une ressource hautement partageable.

SketchingMode solution
  SketchingMode proj
    bin
      Debug
      Release
  Libs
    SystemHooks
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top