Archivez votre projet .net facilement

Description

J'avais besoin de pouvoir archiver correctement les sources de mes projets.
Le problème c'est que lorsque l'on zippe le dossier dans notre solution, on ajoute automatiquement les bin et autres fichiers inutiles.

J'ai donc eu l'idée de me faire une classe qui récupère que les fichiers nécessaires à ma solution et les ajoute à un fichier zip. Et étant d'un naturel partageur, j'ai décidé d'élargir la classe en gérant les solutions crées avec SharpDevelop.

Avec cette classe, vous pouvez donc archiver tous vos projets crées avec Visual Studio .NET 2003 et SharpDevelop 1.x. Le support des projets Visual Studio .NET 2005 est en cours (il me reste que les projets web).

Source / Exemple :


// pour l'utilisation, c'est très simple :

// configuration de la fenêtre de sélection du projet
openFileDialog1.InitialDirectory = 
	Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
openFileDialog1.Multiselect = false;
openFileDialog1.AddExtension = true;
openFileDialog1.CheckFileExists = true;
openFileDialog1.CheckPathExists = true;
openFileDialog1.Title = "Choisissez la solution que vous voulez zipper :";

openFileDialog1.Filter = "Solution Visual Studio .NET 2003/2005 (*.sln) |*.sln|Solution SharpDevelop 1.x (*.cmbx) |*.cmbx";

if (openFileDialog1.ShowDialog() == DialogResult.OK) {
	vbMaf.Utils.SolutionType st;

	// Récupération du type de projet
	st = (openFileDialog1.FilterIndex == 1 ? 
		vbMaf.Utils.SolutionType.VSNet : 
		vbMaf.Utils.SolutionType.SharpDevelop);

	// Initialisation de la classe SolutionExtractor
	vbMaf.Utils.SolutionExtractor se = 
		new vbMaf.Utils.SolutionExtractor(openFileDialog1.FileName, st);

	// Configuration de la fenêtre permettant de choisir 
	// l'emplacement pour la sauvegarde
	saveFileDialog1.InitialDirectory = 
		Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
	saveFileDialog1.Filter = "Fichier ZIP (*.zip)|*.zip";
	saveFileDialog1.OverwritePrompt = true;

	if (saveFileDialog1.ShowDialog() == DialogResult.OK) {
		// si l'utilisateur répond  OK, alors on crée le ZIP
		se.ZipSolution(saveFileDialog1.FileName);
			MessageBox.Show(this,
			"L'archivage de la solution est terminé.\n" + saveFileDialog1.FileName,
			this.Text,
			MessageBoxButtons.OK,
			MessageBoxIcon.Information);
	}
}

Conclusion :


Avec cette sources, vous verrez comment utiliser les expressions régulières, lire un fichier xml, utiliser la librairie SharpZipLib (http://www.icsharpcode.com), les enums... et manipuler les chaines de caractères.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.