Author: brett Date: Wed Mar 6 15:03:48 2013 New Revision: 1453369 URL: http://svn.apache.org/r1453369 Log: set VisualStudioVersion
Property introduced in Visual Studio 2012 is defaulted to the highest installed version when called in this way and allowing imports, which causes incorrect values under Visual Studio 2010 Modified: incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Digest/ProjectDigester.cs incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/NPandayImporter.cs incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Parser/SlnParser/ProjectSolutionParser.cs incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Parser/SlnParser/SolutionParser.cs incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPandayImportProjectForm.cs Modified: incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Digest/ProjectDigester.cs URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Digest/ProjectDigester.cs?rev=1453369&r1=1453368&r2=1453369&view=diff ============================================================================== --- incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Digest/ProjectDigester.cs (original) +++ incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Digest/ProjectDigester.cs Wed Mar 6 15:03:48 2013 @@ -250,6 +250,8 @@ namespace NPanday.ProjectImporter.Digest Engine engine = new Engine(msBuildPath); Project project = new Project(engine); + + // TODO: if we update to a .NET 3.5 minimum we can pass in ProjectLoadSettings.IgnoreMissingImports project.Load(projectFile); return project; Modified: incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/NPandayImporter.cs URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/NPandayImporter.cs?rev=1453369&r1=1453368&r2=1453369&view=diff ============================================================================== --- incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/NPandayImporter.cs (original) +++ incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/NPandayImporter.cs Wed Mar 6 15:03:48 2013 @@ -123,8 +123,13 @@ namespace NPanday.ProjectImporter public static string[] ImportProject(string solutionFile, string groupId, string artifactId, string version, string scmTag, bool verifyTests, bool useMsDeploy, string configuration, string cloudConfig, DependencySearchConfiguration depSearchConfig, ref string warningMsg) { + return ImportProject(solutionFile, groupId, artifactId, version, scmTag, verifyTests, useMsDeploy, configuration, cloudConfig, depSearchConfig, null, ref warningMsg); + } + + public static string[] ImportProject(string solutionFile, string groupId, string artifactId, string version, string scmTag, bool verifyTests, bool useMsDeploy, string configuration, string cloudConfig, DependencySearchConfiguration depSearchConfig, Dictionary<string, string> globalProperties, ref string warningMsg) + { VerifyProjectToImport method = verifyTests ? VerifyUnitTestsToUser.VerifyTests : (VerifyProjectToImport)null; - return ImportProject(solutionFile, groupId, artifactId, version, scmTag, method, useMsDeploy, configuration, cloudConfig, depSearchConfig, ref warningMsg); + return ImportProject(solutionFile, groupId, artifactId, version, scmTag, method, useMsDeploy, configuration, cloudConfig, depSearchConfig, globalProperties, ref warningMsg); } /// <summary> @@ -169,7 +174,7 @@ namespace NPanday.ProjectImporter /// <returns>An array of generated pom.xml filenames</returns> public static string[] ImportProject(string solutionFile, string groupId, string artifactId, string version, string scmTag, VerifyProjectToImport verifyProjectToImport, ref string warningMsg) { - return ImportProject(solutionFile, groupId, artifactId, version, scmTag, verifyProjectToImport, false, null, null, null, ref warningMsg); + return ImportProject(solutionFile, groupId, artifactId, version, scmTag, verifyProjectToImport, false, null, null, null, null, ref warningMsg); } /// <summary> @@ -184,7 +189,7 @@ namespace NPanday.ProjectImporter /// <param name="verifyProjectToImport">A delegate That will Accept a method for verifying Projects To Import</param> /// <param name="scmTag">adds scm tags to parent pom.xml if not string.empty or null</param> /// <returns>An array of generated pom.xml filenames</returns> - public static string[] ImportProject(string solutionFile, string groupId, string artifactId, string version, string scmTag, VerifyProjectToImport verifyProjectToImport, bool useMsDeploy, string configuration, string cloudConfig, DependencySearchConfiguration depSearchConfig, ref string warningMsg) + public static string[] ImportProject(string solutionFile, string groupId, string artifactId, string version, string scmTag, VerifyProjectToImport verifyProjectToImport, bool useMsDeploy, string configuration, string cloudConfig, DependencySearchConfiguration depSearchConfig, Dictionary<string, string> globalProperties, ref string warningMsg) { string[] result = null; @@ -193,7 +198,7 @@ namespace NPanday.ProjectImporter FileInfo solutionFileInfo = new FileInfo(solutionFile); - List<Dictionary<string, object>> list = ParseSolution(solutionFileInfo, ref warningMsg); + List<Dictionary<string, object>> list = ParseSolution(solutionFileInfo, globalProperties, ref warningMsg); if (configuration != null) { @@ -303,9 +308,9 @@ namespace NPanday.ProjectImporter /// </summary> /// <param name="solutionFile">the full path of the *.sln (visual studio solution) file you want to parse</param> /// <returns></returns> - public static List<Dictionary<string, object>> ParseSolution(FileInfo solutionFile, ref string warningMsg) + public static List<Dictionary<string, object>> ParseSolution(FileInfo solutionFile, Dictionary<string, string> globalProperties, ref string warningMsg) { - return SolutionParser.ParseSolution(solutionFile, ref warningMsg); + return SolutionParser.ParseSolution(solutionFile, globalProperties, ref warningMsg); } /// <summary> @@ -330,10 +335,5 @@ namespace NPanday.ProjectImporter { return ProjectValidator.GetProjectStructureType(solutionFile, projectDigests); } - - - - - } } Modified: incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Parser/SlnParser/ProjectSolutionParser.cs URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Parser/SlnParser/ProjectSolutionParser.cs?rev=1453369&r1=1453368&r2=1453369&view=diff ============================================================================== --- incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Parser/SlnParser/ProjectSolutionParser.cs (original) +++ incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Parser/SlnParser/ProjectSolutionParser.cs Wed Mar 6 15:03:48 2013 @@ -52,7 +52,7 @@ namespace NPanday.ProjectImporter.Parser BUILD_ENGINE = new Engine(msBuildPath); } - public List<Dictionary<string, object>> Parse(FileInfo solutionFile, ref string warningMsg) + public List<Dictionary<string, object>> Parse(FileInfo solutionFile, Dictionary<string, string> globalProperties, ref string warningMsg) { NPanday.ProjectImporter.Parser.SlnParser.Model.Solution solution; @@ -143,6 +143,14 @@ namespace NPanday.ProjectImporter.Parser try { + // TODO: if we update to a .NET 3.5 minimum we can pass in ProjectLoadSettings.IgnoreMissingImports, and ignore the visualstudioversion + if (globalProperties != null) + { + foreach (KeyValuePair<string, string> entry in globalProperties) + { + prj.GlobalProperties.SetProperty(entry.Key, entry.Value); + } + } prj.Load(fullpath); } catch (Exception e) @@ -259,6 +267,7 @@ namespace NPanday.ProjectImporter.Parser try { + // TODO: if we update to a .NET 3.5 minimum we can pass in ProjectLoadSettings.IgnoreMissingImports prj.Load(projectReferenceFullPath); } catch (Exception e) Modified: incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Parser/SlnParser/SolutionParser.cs URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Parser/SlnParser/SolutionParser.cs?rev=1453369&r1=1453368&r2=1453369&view=diff ============================================================================== --- incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Parser/SlnParser/SolutionParser.cs (original) +++ incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Parser/SlnParser/SolutionParser.cs Wed Mar 6 15:03:48 2013 @@ -30,7 +30,7 @@ namespace NPanday.ProjectImporter.Parser { public sealed class SolutionParser { - public delegate List<Dictionary<string, object>> ParserAlgoDelegate(System.IO.FileInfo solutionFile, ref string warningMsg); + public delegate List<Dictionary<string, object>> ParserAlgoDelegate(System.IO.FileInfo solutionFile, Dictionary<string, string> globalProperties, ref string warningMsg); static ParserAlgoDelegate[] ALGORITHMS = { @@ -38,13 +38,13 @@ namespace NPanday.ProjectImporter.Parser }; - public static List<Dictionary<string, object>> ParseSolution(FileInfo solutionFile, ref string warningMsg) + public static List<Dictionary<string, object>> ParseSolution(FileInfo solutionFile, Dictionary<string, string> globalProperties, ref string warningMsg) { List<Dictionary<string, object>> list = new List<Dictionary<string, object>>(); foreach (ParserAlgoDelegate algo in ALGORITHMS) { - list.AddRange(algo(solutionFile, ref warningMsg)); + list.AddRange(algo(solutionFile, globalProperties, ref warningMsg)); } return list; Modified: incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPandayImportProjectForm.cs URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPandayImportProjectForm.cs?rev=1453369&r1=1453368&r2=1453369&view=diff ============================================================================== --- incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPandayImportProjectForm.cs (original) +++ incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPandayImportProjectForm.cs Wed Mar 6 15:03:48 2013 @@ -361,7 +361,9 @@ namespace NPanday.VisualStudio.Addin validateSolutionStructure(); resyncAllArtifacts(); // TODO: nicer to have some sort of structure / flags for the Msdeploy bit, or this dialog will get out of control over time - perhaps a "project configuration" dialog can replace the test popup - string[] generatedPoms = ProjectImporter.NPandayImporter.ImportProject(file.FullName, groupId, artifactId, version, scmTag, true, useMsDeploy, configuration, cloudConfig, depSearchConfig, ref warningMsg); + Dictionary<string, string> globalProperties = new Dictionary<string, string>(); + globalProperties.Add("VisualStudioVersion", applicationObject.Version); + string[] generatedPoms = ProjectImporter.NPandayImporter.ImportProject(file.FullName, groupId, artifactId, version, scmTag, true, useMsDeploy, configuration, cloudConfig, depSearchConfig, globalProperties, ref warningMsg); string str = string.Format("NPanday Import Project has Successfully Generated Pom Files!\n"); foreach (string pom in generatedPoms)