Skip to content

Commit 75af6a7

Browse files
authored
Merge pull request #3 from stempy/feature/cleanup
Feature/cleanup
2 parents ce35278 + 578bbb8 commit 75af6a7

27 files changed

+433
-72
lines changed

src/CsProjToVs2017Upgrader.sln

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
33
# Visual Studio 15
4-
VisualStudioVersion = 15.0.26228.9
4+
VisualStudioVersion = 15.0.26430.6
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CsProjToVs2017Upgrader", "CsProjToVs2017Upgrader\CsProjToVs2017Upgrader.csproj", "{AF5780D3-EC38-46D0-B0E4-AFE87FDEF8D9}"
77
EndProject
8-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectUpgrader", "ProjectUpgrader\ProjectUpgrader.csproj", "{AD5373B9-D91D-4F1D-B276-6EC9788E220C}"
8+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProjectUpgrader", "ProjectUpgrader\ProjectUpgrader.csproj", "{AD5373B9-D91D-4F1D-B276-6EC9788E220C}"
9+
EndProject
10+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectUpgrader.Models", "ProjectUpgrader.Models\ProjectUpgrader.Models.csproj", "{6EB3719E-2417-4D1E-9A86-DBF7BA625872}"
11+
EndProject
12+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NugetVersion", "NugetVersion\NugetVersion.csproj", "{25CB70AD-4055-4F5D-9CC7-095B7A0B416E}"
913
EndProject
1014
Global
1115
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -21,6 +25,14 @@ Global
2125
{AD5373B9-D91D-4F1D-B276-6EC9788E220C}.Debug|Any CPU.Build.0 = Debug|Any CPU
2226
{AD5373B9-D91D-4F1D-B276-6EC9788E220C}.Release|Any CPU.ActiveCfg = Release|Any CPU
2327
{AD5373B9-D91D-4F1D-B276-6EC9788E220C}.Release|Any CPU.Build.0 = Release|Any CPU
28+
{6EB3719E-2417-4D1E-9A86-DBF7BA625872}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
29+
{6EB3719E-2417-4D1E-9A86-DBF7BA625872}.Debug|Any CPU.Build.0 = Debug|Any CPU
30+
{6EB3719E-2417-4D1E-9A86-DBF7BA625872}.Release|Any CPU.ActiveCfg = Release|Any CPU
31+
{6EB3719E-2417-4D1E-9A86-DBF7BA625872}.Release|Any CPU.Build.0 = Release|Any CPU
32+
{25CB70AD-4055-4F5D-9CC7-095B7A0B416E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
33+
{25CB70AD-4055-4F5D-9CC7-095B7A0B416E}.Debug|Any CPU.Build.0 = Debug|Any CPU
34+
{25CB70AD-4055-4F5D-9CC7-095B7A0B416E}.Release|Any CPU.ActiveCfg = Release|Any CPU
35+
{25CB70AD-4055-4F5D-9CC7-095B7A0B416E}.Release|Any CPU.Build.0 = Release|Any CPU
2436
EndGlobalSection
2537
GlobalSection(SolutionProperties) = preSolution
2638
HideSolutionNode = FALSE

src/CsProjToVs2017Upgrader/AnalyzeProjects.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
using CsProjToVs2017Upgrader.Models;
2-
using ProjectUpgrader.SolutionReader;
1+
using ProjectUpgrader.SolutionReader;
32
using System;
43
using System.Collections.Generic;
54
using System.Linq;
65
using System.IO;
76
using Microsoft.Extensions.Logging;
7+
using ProjectUpgrader.Models;
8+
using ProjectUpgrader.ProjectReader;
89

910
namespace CsProjToVs2017Upgrader
1011
{

src/CsProjToVs2017Upgrader/CsProjToVs2017Upgrader.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
<PackageReference Include="System.Xml.XDocument" Version="4.3.0" />
2222
</ItemGroup>
2323
<ItemGroup>
24+
<ProjectReference Include="..\ProjectUpgrader.Models\ProjectUpgrader.Models.csproj" />
2425
<ProjectReference Include="..\ProjectUpgrader\ProjectUpgrader.csproj" />
2526
</ItemGroup>
2627
<ItemGroup>

src/CsProjToVs2017Upgrader/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
using System.Collections.Generic;
44
using System.Diagnostics;
55
using System.IO;
6-
using CsProjToVs2017Upgrader.Models;
76
using Microsoft.Extensions.Logging;
87
using Microsoft.Extensions.Configuration;
8+
using ProjectUpgrader.Models;
99
using ProjectUpgrader.Upgraders;
1010

1111
namespace CsProjToVs2017Upgrader

src/NugetVersion/NugetVersion.csproj

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>netcoreapp1.1</TargetFramework>
6+
</PropertyGroup>
7+
8+
<ItemGroup>
9+
<None Remove="visual_studio_project_type_guids_list.csv" />
10+
</ItemGroup>
11+
12+
<ItemGroup>
13+
<EmbeddedResource Include="visual_studio_project_type_guids_list.csv">
14+
<CustomToolNamespace>CsProjToVs2017Upgrader</CustomToolNamespace>
15+
</EmbeddedResource>
16+
</ItemGroup>
17+
18+
<ItemGroup>
19+
<ProjectReference Include="..\ProjectUpgrader.Models\ProjectUpgrader.Models.csproj" />
20+
<ProjectReference Include="..\ProjectUpgrader\ProjectUpgrader.csproj" />
21+
</ItemGroup>
22+
23+
</Project>

src/NugetVersion/Program.cs

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Diagnostics;
4+
using System.Linq;
5+
using ProjectUpgrader;
6+
using ProjectUpgrader.Models;
7+
8+
namespace NugetVersion
9+
{
10+
class Program
11+
{
12+
static void Main(string[] args)
13+
{
14+
if (!args.Any())
15+
{
16+
Usage();
17+
WaitDebugger();
18+
return;
19+
}
20+
21+
// parse command line params
22+
var slnOrProj = args[0];
23+
var packageName = args.Length > 1 ? args[1]:null;
24+
var versionInfo = args.Length > 2 ? args[2]:null;
25+
string newVersion = string.Empty; // only if this is set will we update
26+
27+
if (!string.IsNullOrEmpty(packageName))
28+
{
29+
if (!string.IsNullOrEmpty(versionInfo))
30+
{
31+
if (versionInfo.Contains("-setversion="))
32+
{
33+
newVersion = versionInfo.Split('=')[1];
34+
}
35+
}
36+
}
37+
38+
// get project data from 1st arg, group by sln
39+
var projectGrps = GetProjectFileGroups(slnOrProj);
40+
41+
// now process the groups
42+
ProcessProjectGroups(projectGrps, packageName, newVersion);
43+
44+
// end
45+
WaitDebugger();
46+
}
47+
48+
/// <summary>
49+
/// Process the project groups by sln (or project files)
50+
/// </summary>
51+
/// <param name="projectGrps"></param>
52+
private static void ProcessProjectGroups(Dictionary<string, IEnumerable<ProjectMeta>> projectGrps, string packageName, string newVersion)
53+
{
54+
foreach (var projectGrp in projectGrps)
55+
{
56+
var key = projectGrp.Key;
57+
var items = projectGrp.Value;
58+
Console.WriteLine(key);
59+
foreach (var projectMeta in items)
60+
{
61+
Console.WriteLine($"\t{projectMeta.AssemblyName}");
62+
var pr = projectMeta.PackageReferences;
63+
var pkgs = string.IsNullOrEmpty(packageName)? pr: pr.Where(u => u.Name.StartsWith(packageName));
64+
foreach (var pkg in pkgs)
65+
{
66+
Console.WriteLine($"\t\t{pkg}");
67+
}
68+
}
69+
}
70+
}
71+
72+
private static Dictionary<string, IEnumerable<ProjectMeta>> GetProjectFileGroups(string slnOrProj)
73+
{
74+
var slnOrProjFiles = slnOrProj.Split(new char[] {','}).Select(u => u.Trim());
75+
var fileProcessor = new SolutionOrProjectQuery();
76+
var projects = fileProcessor.GetProjects(slnOrProjFiles);
77+
var projectGrps = projects.GroupBy(u => u.BelongsToSolutionFile)
78+
.ToDictionary(k => k.Key, y => (IEnumerable<ProjectMeta>) y.ToList());
79+
return projectGrps;
80+
}
81+
82+
83+
static void WaitDebugger()
84+
{
85+
if (Debugger.IsAttached)
86+
{
87+
Console.ReadLine();
88+
}
89+
}
90+
91+
92+
static void Usage()
93+
{
94+
Console.WriteLine("\nNugetVersion slnfile.sln,sln2.sln|project1.csproj,projectfile.csproj [packagenamespec] [-setversion=x.y.z]");
95+
Console.WriteLine("\n\tOnly works for packagereferenced elements <PackageReference>\n\t see: http://blog.nuget.org/20170316/NuGet-now-fully-integrated-into-MSBuild.html");
96+
Console.WriteLine("\n\tslnfile|projectfile = specify sln or csproj file, comma separated for multiple, or wildcards");
97+
Console.WriteLine("\t[packagenamespec] = packagename to query or set - can use wildcard ie EntityFramework.*");
98+
Console.WriteLine("\t[-setversion=x.y.z] = set version of all packages matching packagenamespec to x.y.z");
99+
Console.WriteLine("\n");
100+
}
101+
}
102+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"profiles": {
3+
"NugetVersion": {
4+
"commandName": "Project",
5+
"commandLineArgs": "\"C:\\_Codebucket\\ia\\ia_backend\\ia.reports\\src\\iAdviserApi.Api.sln\",\"C:\\_Codebucket\\ia\\ia_backend\\iadviserweb2\\Websites\\Ia.Api\\Ia.Api.csproj\""
6+
}
7+
}
8+
}
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
ASP.NET MVC 1.0,{603C0E0B-DB56-11DC-BE95-000D561079B0},
2+
ASP.NET MVC 2.0,{F85E285D-A4E0-4152-9332-AB1D724D3325},
3+
ASP.NET MVC 3.0,{E53F8FEA-EAE0-44A6-8774-FFD645390401},
4+
ASP.NET MVC 4.0,{E3E379DF-F4C6-4180-9B81-6769533ABE47},
5+
ASP.NET MVC 5.0,{349C5851-65DF-11DA-9384-00065B846F21},
6+
C#,{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC},
7+
C++,{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942},
8+
Database,{A9ACE9BB-CECE-4E62-9AA4-C7E7C5BD2124},
9+
Database (other project types),{4F174C21-8C12-11D0-8340-0000F80270F8},
10+
Deployment Cab,{3EA9E505-35AC-4774-B492-AD1749C4943A},
11+
Deployment Merge Module,{06A35CCD-C46D-44D5-987B-CF40FF872267},
12+
Deployment Setup,{978C614F-708E-4E1A-B201-565925725DBA},
13+
Deployment Smart Device Cab,{AB322303-2255-48EF-A496-5904EB18DA55},
14+
Distributed System,{F135691A-BF7E-435D-8960-F99683D2D49C},
15+
Dynamics 2012 AX C# in AOT,{BF6F8E12-879D-49E7-ADF0-5503146B24B8},
16+
F#,{F2A71F9B-5D33-465A-A702-920D77279786},
17+
J#,{E6FDF86B-F3D1-11D4-8576-0002A516ECE8},
18+
Legacy (2003) Smart Device (C#),{20D4826A-C6FA-45DB-90F4-C717570B9F32},
19+
Legacy (2003) Smart Device (VB.NET),{CB4CE8C6-1BDB-4DC7-A4D3-65A1999772F8},
20+
Model-View-Controller v2 (MVC2),{F85E285D-A4E0-4152-9332-AB1D724D3325},
21+
Model-View-Controller v3 (MVC3),{E53F8FEA-EAE0-44A6-8774-FFD645390401},
22+
Model-View-Controller v4 (MVC4),{E3E379DF-F4C6-4180-9B81-6769533ABE47},
23+
Mono for Android,{EFBA0AD7-5A72-4C68-AF49-83D382785DCF},
24+
MonoTouch,{6BC8ED88-2882-458C-8E55-DFD12B67127B},
25+
MonoTouch Binding,{F5B4F3BC-B597-4E2B-B552-EF5D8A32436F},
26+
Portable Class Library,{786C830F-07A1-408B-BD7F-6EE04809D6DB},
27+
SharePoint (C#),{593B0543-81F6-4436-BA1E-4747859CAAE2},
28+
SharePoint (VB.NET),{EC05E597-79D4-47f3-ADA0-324C4F7C7484},
29+
SharePoint Workflow,{F8810EC1-6754-47FC-A15F-DFABD2E3FA90},
30+
Silverlight,{A1591282-1198-4647-A2B1-27E5FF5F6F3B},
31+
Smart Device (C#),{4D628B5B-2FBC-4AA6-8C16-197242AEB884},
32+
Smart Device (VB.NET),{68B1623D-7FB9-47D8-8664-7ECEA3297D4F},
33+
Solution Folder,{2150E333-8FDC-42A3-9474-1A3956D46DE8},
34+
Test,{3AC096D0-A1C2-E12C-1390-A8335801FDAB},
35+
VB.NET,{F184B08F-C81C-45F6-A57F-5ABD9991F28F},
36+
Visual Database Tools,{C252FEB5-A946-4202-B1D4-9916A0590387},
37+
Visual Studio Tools for Applications (VSTA),{A860303F-1F3F-4691-B57E-529FC101A107},
38+
Visual Studio Tools for Office (VSTO),{BAA0C2D2-18E2-41B9-852F-F413020CAA33},
39+
Web Application,{349C5851-65DF-11DA-9384-00065B846F21},
40+
Web Site,{E24C65DC-7377-472B-9ABA-BC803B73C61A},
41+
Windows (C#),{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC},
42+
Windows (VB.NET),{F184B08F-C81C-45F6-A57F-5ABD9991F28F},
43+
Windows (Visual C++),{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942},
44+
Windows Communication Foundation (WCF),{3D9AD99F-2412-4246-B90B-4EAA41C64699},
45+
Windows Phone 8/8.1 Blank/Hub/Webview App,{76F1466A-8B6D-4E39-A767-685A06062A39},
46+
Windows Phone 8/8.1 App�(C#),{C089C8C0-30E0-4E22-80C0-CE093F111A43},
47+
Windows Phone 8/8.1�App (VB.NET),{DB03555F-0C8B-43BE-9FF9-57896B3C5E56},
48+
Windows Presentation Foundation (WPF),{60DC8134-EBA5-43B8-BCC9-BB4BC16C2548},
49+
Windows Store�(Metro) Apps & Components,{BC8A1FFA-BEE3-4634-8014-F334798102B3},
50+
Workflow (C#),{14822709-B5A1-4724-98CA-57A101D1B079},
51+
Workflow (VB.NET),{D59BE175-2ED0-4C54-BE3D-CDAA9F3214C8},
52+
Workflow Foundation,{32F31D43-81CC-4C15-9DE6-3FC5453562B6},
53+
Xamarin.Android,{EFBA0AD7-5A72-4C68-AF49-83D382785DCF},
54+
Xamarin.iOS,{6BC8ED88-2882-458C-8E55-DFD12B67127B},
55+
XNA (Windows),{6D335F3A-9D43-41b4-9D22-F6F17C4BE596},
56+
XNA (XBox),{2DF5C3F4-5A5F-47a9-8E94-23B4456F55E2},
57+
XNA (Zune),{D399B71A-8929-442a-A9AC-8BEC78BB2433},
58+
By GUID,,
59+
Deployment Merge Module,{06A35CCD-C46D-44D5-987B-CF40FF872267},
60+
Workflow (C#),{14822709-B5A1-4724-98CA-57A101D1B079},
61+
Legacy (2003) Smart Device (C#),{20D4826A-C6FA-45DB-90F4-C717570B9F32},
62+
Solution Folder,{2150E333-8FDC-42A3-9474-1A3956D46DE8},
63+
XNA (XBox),{2DF5C3F4-5A5F-47a9-8E94-23B4456F55E2},
64+
Workflow Foundation,{32F31D43-81CC-4C15-9DE6-3FC5453562B6},
65+
Web Application,{349C5851-65DF-11DA-9384-00065B846F21},
66+
Test,{3AC096D0-A1C2-E12C-1390-A8335801FDAB},
67+
Windows Communication Foundation (WCF),{3D9AD99F-2412-4246-B90B-4EAA41C64699},
68+
Deployment Cab,{3EA9E505-35AC-4774-B492-AD1749C4943A},
69+
Smart Device (C#),{4D628B5B-2FBC-4AA6-8C16-197242AEB884},
70+
Database (other project types),{4F174C21-8C12-11D0-8340-0000F80270F8},
71+
SharePoint (C#),{593B0543-81F6-4436-BA1E-4747859CAAE2},
72+
ASP.NET MVC 1.0,{603C0E0B-DB56-11DC-BE95-000D561079B0},
73+
Windows Presentation Foundation (WPF),{60DC8134-EBA5-43B8-BCC9-BB4BC16C2548},
74+
Smart Device (VB.NET),{68B1623D-7FB9-47D8-8664-7ECEA3297D4F},
75+
MonoTouch,{6BC8ED88-2882-458C-8E55-DFD12B67127B},
76+
XNA (Windows),{6D335F3A-9D43-41b4-9D22-F6F17C4BE596},
77+
Windows Phone 8/8.1 Blank/Hub/Webview App,{76F1466A-8B6D-4E39-A767-685A06062A39},
78+
Portable Class Library,{786C830F-07A1-408B-BD7F-6EE04809D6DB},
79+
C++,{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942},
80+
Deployment Setup,{978C614F-708E-4E1A-B201-565925725DBA},
81+
Silverlight,{A1591282-1198-4647-A2B1-27E5FF5F6F3B},
82+
Visual Studio Tools for Applications (VSTA),{A860303F-1F3F-4691-B57E-529FC101A107},
83+
Database,{A9ACE9BB-CECE-4E62-9AA4-C7E7C5BD2124},
84+
Deployment Smart Device Cab,{AB322303-2255-48EF-A496-5904EB18DA55},
85+
Visual Studio Tools for Office (VSTO),{BAA0C2D2-18E2-41B9-852F-F413020CAA33},
86+
Windows Store Apps (Metro Apps),{BC8A1FFA-BEE3-4634-8014-F334798102B3},
87+
C# in Dynamics 2012 AX AOT,{BF6F8E12-879D-49E7-ADF0-5503146B24B8},
88+
Windows Phone 8/8.1 App�(C#),,{C089C8C0-30E0-4E22-80C0-CE093F111A43}
89+
Visual Database Tools,{C252FEB5-A946-4202-B1D4-9916A0590387},
90+
Legacy (2003) Smart Device (VB.NET),{CB4CE8C6-1BDB-4DC7-A4D3-65A1999772F8},
91+
XNA (Zune),{D399B71A-8929-442a-A9AC-8BEC78BB2433},
92+
Workflow (VB.NET),{D59BE175-2ED0-4C54-BE3D-CDAA9F3214C8},
93+
Windows Phone 8/8.1�App (VB.NET),,{DB03555F-0C8B-43BE-9FF9-57896B3C5E56}
94+
Web Site,{E24C65DC-7377-472B-9ABA-BC803B73C61A},
95+
ASP.NET MVC 4.0,{E3E379DF-F4C6-4180-9B81-6769533ABE47},
96+
ASP.NET MVC 3.0,{E53F8FEA-EAE0-44A6-8774-FFD645390401},
97+
J#,{E6FDF86B-F3D1-11D4-8576-0002A516ECE8},
98+
SharePoint (VB.NET),{EC05E597-79D4-47f3-ADA0-324C4F7C7484},
99+
Xamarin.Android / Mono for Android,{EFBA0AD7-5A72-4C68-AF49-83D382785DCF},
100+
Distributed System,{F135691A-BF7E-435D-8960-F99683D2D49C},
101+
VB.NET,{F184B08F-C81C-45F6-A57F-5ABD9991F28F},
102+
F#,{F2A71F9B-5D33-465A-A702-920D77279786},
103+
MonoTouch Binding,{F5B4F3BC-B597-4E2B-B552-EF5D8A32436F},
104+
ASP.NET MVC 2.0,{F85E285D-A4E0-4152-9332-AB1D724D3325},
105+
SharePoint Workflow,{F8810EC1-6754-47FC-A15F-DFABD2E3FA90},
106+
C#,{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC},

src/ProjectUpgrader/Models/PackageReference.cs renamed to src/ProjectUpgrader.Models/PackageReference.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
1-
using System;
2-
using System.Collections.Generic;
3-
using System.Text;
4-
5-
namespace CsProjToVs2017Upgrader.Models
1+
namespace ProjectUpgrader.Models
62
{
73
public class PackageReference
84
{

src/ProjectUpgrader/Models/ProjectMeta.cs renamed to src/ProjectUpgrader.Models/ProjectMeta.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
using System;
2-
using System.Linq;
32
using System.Collections.Generic;
4-
using System.Text;
3+
using System.Linq;
54

6-
namespace CsProjToVs2017Upgrader.Models
5+
namespace ProjectUpgrader.Models
76
{
87
public class ProjectMeta
98
{
@@ -31,7 +30,7 @@ public class ProjectMeta
3130
public string OutputType { get; set; }
3231
public ProjectType ProjectType { get; set; }
3332

34-
public string BelongsToSolutionFile { get; set; }
33+
public string BelongsToSolutionFile { get; set; } = String.Empty;
3534

3635

3736
public IEnumerable<ProjectReference> GetNugetRefs()

0 commit comments

Comments
 (0)