2010-05-07 10 views
1

J'ai un projet CruiseControl.Net configuré pour construire un projet ASP.Net, en utilisant une tâche svn> < pour tirer le dernier code du contrôle de la source.Déploiement de l'application web ASP.Net avec CruiseControl.Net et SVN - se débarrasser des dossiers .svn

Lors d'une génération réussie, j'utilise un < buildpublisher> pour copier le site dans un dossier de déploiement. Mon problème est que le buildpublisher copie tout dans le dossier de destination, y compris chaque dossier .svn et son contenu. Quel est le moyen le plus simple de supprimer les dossiers .svn avant de les copier dans le dossier de déploiement?

Répondre

0

Une solution simple (si cela fonctionne pour vous): Ajouter une étape après le bloc tâches, avant l'éditeur.

<exec> 
    <executable>svn.exe</executable> 
    <baseDirectory>c:\path_to_my_svn\</baseDirectory> 
    <buildArgs>export MyWorkingCopyPath MyTemporaryPath </buildArgs> 
</exec> 

SVN copie la copie de travail MyWorkingCopyPath (uniquement les éléments sous contrôle de version) dans le dossier de destination de MyTemporaryPath.

Et dans l'éditeur, vous devez modifier la source en tant que MyTemporaryPath.

Donc, ce n'est qu'une tâche de plus à ajouter.

+0

Merci. J'ai utilisé une version modifiée de cette suggestion pour le faire fonctionner. J'ai en fait besoin de faire l'export avant de construire, et de définir la tâche de construction pour utiliser le contenu de MyTemporaryPath. Sinon, si l'exportation est effectuée après la génération, seuls les fichiers sources d'origine sont copiés et le dossier Bin est laissé en arrière. J'aimerais que la tâche de contrôle de la source puisse effectuer l'exportation automatiquement, mais cela fonctionne. –

1

Vous devez exporter depuis svn pour le déploiement. Utilisez le svn exe avec arg = mise à jour au lieu de l'habituel arg = jusqu'à la mise en

Cela exporter vos fichiers dans votre répertoire de déploiement, en supprimant les dossiers svn

0

J'utilise cette ligne pour un projet de déploiement Web. Peut-être vous pouvez l'adapter à vos besoins (MsBuild est un grand miracle pour moi)

<ItemGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'"> 
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\obj\**\*.*" /> 
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\.svn\**\*.*" /> 
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\.svn\**\*" /> 
</ItemGroup>