2012-01-15 3 views
9

J'ai hérité d'une application C#, composée de 4 fichiers de solution contenant chacun 92 projets sous chaque fichier de solution.VISUAL STUDIO 2010: Comment exporter tous les projets sous une solution vers le même répertoire

Je cherche un moyen facile de changer tous les chemins de sortie de construction de chaque projet dans un répertoire commun lorsque je construis les solutions manuellement. Si quelqu'un connaît une macro qui va parcourir chaque projet et changer le chemin, ou s'il y a un moyen de créer une variable d'environnement globale qui remplacera toutes les variables des projets, ou d'une autre manière, je le ferai vraiment apprécier l'aide.

Veuillez noter que je n'utilise PAS un serveur de build, et que je voudrais accomplir cela lorsque je fais une construction manuelle de la solution dans Visual Studio.

Merci beaucoup à l'avance.

Répondre

16
  1. Installez un éditeur de texte décent, si vous n'en possédez pas déjà un. Quelque chose comme Notepad++. L'éditeur devra être capable d'ouvrir plusieurs fichiers à la fois.

  2. Accédez au répertoire de la solution parente dans Poste de travail. Entrez "* .csproj" (ou "* .vbproj") dans la barre de recherche pour pouvoir ouvrir tous les fichiers de projet en même temps dans les sous-répertoires.

    enter image description here

  3. Ouvrez votre éditeur de texte, comme Notepad ++

  4. Faites glisser tous les fichiers du projet dans l'éditeur pour les ouvrir

  5. Recherchez la ligne <OutputPath>...</OutputPath> et effectuez une recherche et remplacer dans toutes ouvrir les documents, en remplaçant les chemins qui sont là avec le chemin que vous voulez.

    enter image description here

+0

Merci, idée brillante et pratique! – Ryk

+0

@Ryk: de nombreuses façons de dépecer un chat, mais si vous voulez juste que le chemin change à travers le tableau, ce serait un moyen rapide et simple de le gérer. Sachez simplement que vous pouvez avoir plus d'un chemin de sortie différent dans les fichiers de projet à remplacer (par exemple, "bin \ Release" et "bin \ Debug") –

+0

vous êtes pro man !!! Je viens de sauver ma journée. ou nuit. – guness

1

Les informations sur l'emplacement de sortie stockées dans le fichier de projet (* .csproj)

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
    <DebugSymbols>true</DebugSymbols> 
    <DebugType>full</DebugType> 
    <Optimize>false</Optimize> 
    **<OutputPath>..\..\Libs\CompiledLibs\</OutputPath>** 
    <DefineConstants>DEBUG;TRACE</DefineConstants> 
    <ErrorReport>prompt</ErrorReport> 
    <WarningLevel>4</WarningLevel> 
</PropertyGroup> 

vous pouvez trouver outil pour replcace/ajouter ce paramètre dans tous les fichiers de projet ou écrire vous-même Updater ... fichier de projet est XML fichier qui peut être mofifié en utilisant C#.

+1

merci. J'espérais que je pourrais éviter cela. Ce que vous dites fonctionnera, mais j'espère quelque chose de plus facile, car je suis déjà dans la tête pour d'autres choses en ce moment. Si je ne trouve pas d'autre moyen, je vais vous accorder les points, encore une fois merci. – Ryk

+0

J'ai entendu dire que l'application Beyond Compare a de grandes capacités pour la manipulation de texte ... peut-être qu'elle pourra le faire (remplacer la valeur ouputpath dans tous les fichiers xml dans le dossier et les sous-dossiers). –

Questions connexes