示例#1
0
        /// <summary>
        ///   Determines if one of <c>AssemblyVersionType</c> assembly infos
        ///   should be updated.
        /// </summary>
        /// <param name="projectInfo">
        ///   <c>ProjectInfo</c> for the project that is considered.
        /// </param>
        /// <param name="assemblyVersionType">
        ///   <c>AssemblyVersionType</c> for which version update is determined.
        /// </param>
        /// <param name="highestProjectVersion">
        ///   Highest <c>ProjectVersion</c> used as a reference for update.
        /// </param>
        /// <returns>
        ///   <c>true</c> if version should be incremented.
        /// </returns>
        private bool ShouldUpdateOneOfAssemblyVersionTypes(ProjectInfo projectInfo, AssemblyVersionType assemblyVersionType, ProjectVersion highestProjectVersion)
        {
            Debug.Assert(assemblyVersionType == AssemblyVersionType.AssemblyVersion || assemblyVersionType == AssemblyVersionType.AssemblyFileVersion || assemblyVersionType == AssemblyVersionType.AssemblyInformationalVersion);
            // first check if corresponding assembly version type exists at all
            if (projectInfo.CurrentAssemblyVersions[assemblyVersionType] == ProjectVersion.Empty)
            {
                return(false);
            }
            // else, depending on settings
            switch (m_numberingOptions.BatchCommandIncrementScheme)
            {
            case (BatchCommandIncrementScheme.IncrementModifiedIndependently):
                return(projectInfo.IsMarkedForUpdate(assemblyVersionType));

            case (BatchCommandIncrementScheme.IncrementAllIndependently):
                return(true);

            case (BatchCommandIncrementScheme.IncrementModifiedOnlyAndSynchronize):
                int resetBuildAndRevisionValues = (int)m_numberingOptions.ResetBuildAndRevisionTo;
                return(projectInfo.Modified || ProjectVersion.ApplyVersionPattern(highestProjectVersion.ToString(), projectInfo.CurrentAssemblyVersions[assemblyVersionType].ToString(), resetBuildAndRevisionValues) != projectInfo.CurrentAssemblyVersions[assemblyVersionType].ToString());//projectInfo.CurrentAssemblyVersions[assemblyVersionType] < highestProjectVersion;

            case (BatchCommandIncrementScheme.IncrementAllAndSynchronize):
                int buildAndRevisionResetValue = (int)m_numberingOptions.ResetBuildAndRevisionTo;
                return(ProjectVersion.ApplyVersionPattern(highestProjectVersion.ToString(), projectInfo.CurrentAssemblyVersions[assemblyVersionType].ToString(), buildAndRevisionResetValue) != projectInfo.CurrentAssemblyVersions[assemblyVersionType].ToString()); // projectInfo.CurrentAssemblyVersions[assemblyVersionType] < highestProjectVersion;
            }
            Debug.Assert(false, "Not supported option");
            return(false);
        }
示例#2
0
        public void CreateProjectVersion2()
        {
            var version = new ProjectVersion(1, 1);

            Assert.NotNull(version);
            Assert.IsTrue(version.Major == 1);
            Assert.IsTrue(version.Minor == 1);

            Assert.IsTrue(version.ToString().Equals("1.1"));
        }
示例#3
0
        public void ReturnToString()
        {
            var version = new ProjectVersion();

            Assert.IsTrue(version.ToString(0).Equals(String.Empty));
            Assert.Throws <ArgumentException>(() => version.ToString(1));
            Assert.Throws <ArgumentException>(() => version.ToString(2));

            version = new ProjectVersion(1, 1, 1);
            Assert.IsTrue(version.ToString(3).Equals("1.1.1"));

            version = new ProjectVersion(1, 1, 1, 1);
            Assert.IsTrue(version.ToString(4).Equals("1.1.1.1"));

            version = new ProjectVersion(1, 1);
            Assert.Throws <ArgumentException>(() => version.ToString(3));
            version = new ProjectVersion(1, 1, 1);
            Assert.Throws <ArgumentException>(() => version.ToString(4));

            version = new ProjectVersion(1, 1, 1, 1);
            Assert.Throws <ArgumentException>(() => version.ToString(9999));
        }
示例#4
0
        public void CreateProjectVersion1()
        {
            var version = new ProjectVersion
            {
                Major    = 1,
                Minor    = 0,
                Build    = 0,
                Revision = 1
            };

            Assert.NotNull(version);
            Assert.IsTrue(version.ToString(1).Equals("1"));
        }
示例#5
0
        /// <summary>
        ///   Provides the updated version as a string.
        /// </summary>
        /// <param name="projectInfo">
        ///   <c>ProjectInfo</c> for the project that is updated.
        /// </param>
        /// <param name="assemblyVersionType">
        ///   <c>AssemblyVersionType</c> for which version update is done.
        /// </param>
        /// <param name="highestProjectVersion">
        ///   Highest <c>ProjectVersion</c> used as a reference for update.
        /// </param>
        /// <returns>
        ///   New version as a string.
        /// </returns>
        public string ProvideNewVersion(ProjectInfo projectInfo, AssemblyVersionType assemblyVersionType, ProjectVersion highestProjectVersion)
        {
            Debug.Assert(assemblyVersionType != AssemblyVersionType.All);
            switch (m_numberingOptions.BatchCommandIncrementScheme)
            {
            case BatchCommandIncrementScheme.IncrementModifiedIndependently:
            case BatchCommandIncrementScheme.IncrementAllIndependently:
                if (m_numberingOptions.SynchronizeAllVersionTypes && !projectInfo.ToUpdate)
                {
                    return(projectInfo.CurrentAssemblyVersions.HighestProjectVersion.ToString());
                }
                return(projectInfo.ToBecomeAssemblyVersions[assemblyVersionType].ToString());

            case (BatchCommandIncrementScheme.IncrementAllAndSynchronize):
            case (BatchCommandIncrementScheme.IncrementModifiedOnlyAndSynchronize):
                int resetBuildAndRevisionValues = (int)m_numberingOptions.ResetBuildAndRevisionTo;
                return(ProjectVersion.ApplyVersionPattern(highestProjectVersion.ToString(), projectInfo.CurrentAssemblyVersions[assemblyVersionType].ToString(), resetBuildAndRevisionValues));// highestProjectVersion.ToString();
            }
            Debug.Assert(false, "Not supported option");
            return(null);
        }
        public void SynchronizeAllVersions(bool includeProjectsNotForUpdate, bool allListViews)
        {
            m_disableCheckSynchronization = true;
            ProjectVersion highestToUpdateVersion = ProcessListViewsReturningHighestProjectVersion(new ProcessProjectsListViewReturningProjectVersionDelegate(ProjectsListView.GetHighestToUpdateVersion), allListViews, includeProjectsNotForUpdate);

            if (!includeProjectsNotForUpdate && highestToUpdateVersion.ContainsWildCard())
            {
                highestToUpdateVersion = ProcessListViewsReturningHighestProjectVersion(new ProcessProjectsListViewReturningProjectVersionDelegate(ProjectsListView.GetHighestToUpdateVersion), allListViews, true);
            }
            ProcessListViews(new ProcessProjectsListViewDelegate(ProjectsListView.MarkProjectsWithLowerVersion), allListViews, highestToUpdateVersion);
            ProcessListViews(new ProcessProjectsListViewDelegate(ProjectsListView.ApplyVersion), allListViews, highestToUpdateVersion.ToString(true));
            m_disableCheckSynchronization = false;
        }