2010-08-12 2 views
1

J'ai une solution avec des dizaines de projets. Je peux individuellement aller dans le bel onglet "Propriétés" et changer les répertoires de sortie, mais cela prendrait beaucoup de temps. Quel est le moyen rapide?Comment modifier tous les répertoires de construction de ma solution VS?

De plus, certaines anciennes configurations de construction ne sont plus nécessaires. Comment les zapper?

Répondre

0

droit, j'ai eu un coup d'oeil, et voici ce que je faisais:

N'ayant rien chargé, vous pouvez aller à Modifier> Remplacer dans les fichiers.

Cela vous permet de rechercher dans le répertoire de la solution uniquement les fichiers .csproj. J'ai cherché la balise xml et l'ai remplacée avec précaution par mon nouveau répertoire désiré. N'oubliez pas de le faire pour le débogage et la libération. En outre, si vous êtes en contrôle de version, assurez-vous de ne pas bousiller les fichiers de base-copie.(C'est pourquoi vous ne recherchez que .csproj).

0

Il existe certaines anciennes configurations de construction qui ne sont plus nécessaires. Comment les zapper?

Certaines choses peuvent être effectuées dans Propriétés de la solution | Configuration Manager

Mais en grande partie, vous devez modifier chaque projet individuel.

Je peux aller individuellement dans le joli onglet "Propriétés" et y changer les répertoires de sortie, mais cela prendrait beaucoup de temps. Quel est le moyen rapide?

  1. Une macro?
  2. Les fichiers de projet (.csproj, .fsproj, ... en fonction du type de projet sous-jacent) sont XML et peuvent être édités dans VS (décharger le projet, puis cliquer droit pour éditer directement le fichier projet) ou en dehors de VS.

Les modifications pour le numéro 2 peuvent elles-mêmes être automatisées.

La quantité d'automatisation que vous choisissez dépend en réalité du nombre de projets que vous avez actuellement et de la nécessité ou non d'effectuer de telles modifications en masse. N'oubliez pas de garder beaucoup de sauvegardes, il est facile de casser des choses.

0

Pour modifier les propriétés communes à tous vos projets à la fois, vous pouvez importer un projet commun dans chacun d'eux. Oui, cela nécessite d'éditer tous vos projets actuels (bien qu'il ne soit pas si difficile d'écrire un script listant tous les fichiers .csproj/... avec recusrively et d'ajouter/supprimer quelques lignes), mais si vous devez faire des changements encore dans le futur ça va rendre les choses beaucoup plus faciles.

Par exemple, dans tous vos projets utilisent cette (comme dernière ligne avant la balise de fin):

<Import Project="..\templates\mydefaults.targets/> 

Et mydefaults.targets, par exemple:

<Import Project="mypaths.targets"/> 
<PropertyGroup> 
    <OutputPath>$(MyCommonBinDir)\(Configuration)$(PlatForm)\</OutputPath> 
    <BaseIntermediateOutputPath>$(MyTempDir)\$(AssemblyName)\</BaseIntermediateOutputPath> 
</PropertyGroup> 

Je tiens à garder le mypaths.target sépare: il définit MyCommonBinDir et MyTempDir, donc si je veux construire une branche de mon arbre source d'origine je dois seulement changer ce fichier pour définir les chemins de sortie pour tous les projets à la fois.

Questions connexes