/*********************************************************************** * * Copyright (C) 2005-2006 Novell, Inc. All Rights Reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; version 2.1 * of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, Novell, Inc. * * To contact Novell about this file by physical or electronic mail, * you may find current contact information at www.novell.com. * ***********************************************************************/ // // copyright 2003 Don Kackman - mailto:dkackman_2000@yahoo.com // // no warranty expressed or implied // use however you'd like // using System; using System.IO; using System.Collections; namespace VersionVDProj { /// /// Class that updates the version info of merge module projects /// public class MSMProjectVersioner : VDProjectVersioner { private readonly static Guid MSM_PROJECT_TYPE = new Guid( "{DD7A5B58-C2F9-40FF-B2EF-0773356FB978}" ); private string signature; /// /// createas a new instance of the class /// /// the project file public MSMProjectVersioner( FileInfo file ) : base( file, MSM_PROJECT_TYPE ) { } protected override void SetOptions( Hashtable options ) { // get the signature - generate if not specified if ( options.Contains( "signature" ) ) signature = options[signature].ToString(); else signature = "MergeModule." + Guid.NewGuid().ToString().ToUpper().Replace( "-", "" ); } protected override string TranslateLine( string line ) { // look for the properties we are interested in changing // if we find them, replace the old value with the new and return the new line string // otherwise just return the line string if ( line.IndexOf( "\"Version\"" ) != -1 ) line = ReplaceValue( line, "Version", version.FourPartVersion ); // module signature cannot have dashes else if ( line.IndexOf( "\"ModuleSignature\"" ) != -1 ) line = ReplaceValue( line, "ModuleSignature", signature ); return line; } } }