Datei: NDOPackage/ProjectExtensions.cs
Last Commit (946ad0e)
1 | using System; |
2 | using System. Collections. Generic; |
3 | using System.Linq; |
4 | using System.Text; |
5 | using System.Threading.Tasks; |
6 | using Community.VisualStudio.Toolkit; |
7 | using Microsoft.VisualStudio.Shell.Interop; |
8 | |
9 | namespace NDOVsPackage |
10 | { |
11 | ····internal static class ProjectExtensions |
12 | ····{ |
13 | ········public static EnvDTE.Project DteProject( this Project project ) |
14 | ········{ |
15 | ············ThreadHelper.ThrowIfNotOnUIThread(); |
16 | |
17 | ············var projects = ApplicationObject.VisualStudioApplication.Solution.Projects; |
18 | ············EnvDTE.Project dteProj = null; |
19 | ············foreach (EnvDTE.Project proj in projects) |
20 | ············{ |
21 | ················if (proj.Name == project.Name) |
22 | ················{ |
23 | ····················dteProj = proj; |
24 | ····················break; |
25 | ················} |
26 | ············} |
27 | |
28 | ············return dteProj; |
29 | ········} |
30 | |
31 | ········public static IVsHierarchy GetVsHierarchy( this EnvDTE.Project project ) |
32 | ········{ |
33 | ············ThreadHelper.ThrowIfNotOnUIThread(); |
34 | ············IVsHierarchy projectHierarchy = null; |
35 | |
36 | ············( (IVsSolution) Package.GetGlobalService( typeof( IVsSolution ) ) ).GetProjectOfUniqueName( project.UniqueName, out projectHierarchy ); |
37 | ············return projectHierarchy; |
38 | ········} |
39 | |
40 | |
41 | ········public static IVsHierarchy GetVsHierarchy( this Project project ) |
42 | ········{ |
43 | ············IVsHierarchy projectHierarchy; |
44 | ············project.GetItemInfo( out projectHierarchy, out _, out _ ); |
45 | |
46 | ············return projectHierarchy; |
47 | ········} |
48 | ····} |
49 | } |
50 |
New Commit (33e9857)
1 | using System; |
2 | using System. IO; |
3 | using Microsoft.VisualStudio.Shell.Interop; |
4 | |
5 | namespace NDOVsPackage |
6 | { |
7 | ····internal static class ProjectExtensions |
8 | ····{ |
9 | ········public static EnvDTE.Project DteProject( this Project project ) |
10 | ········{ |
11 | ············ThreadHelper.ThrowIfNotOnUIThread(); |
12 | |
13 | ············var projects = ApplicationObject.VisualStudioApplication.Solution.Projects; |
14 | ············EnvDTE.Project dteProj = null; |
15 | ············foreach (EnvDTE.Project proj in projects) |
16 | ············{ |
17 | ················if (proj.Name == project.Name) |
18 | ················{ |
19 | ····················dteProj = proj; |
20 | ····················break; |
21 | ················} |
22 | ············} |
23 | |
24 | ············return dteProj; |
25 | ········} |
26 | |
27 | ········public static string DefaultMappingFileName( this Project project ) |
28 | ········{ |
29 | ············return Path.Combine( Path.GetDirectoryName(project.FullPath), "NDOMapping.xml" ); |
30 | ········} |
31 | |
32 | |
33 | ········public static string MappingFilePath( this Project project ) |
34 | ········{ |
35 | ············string defaultFileName = project.DefaultMappingFileName(); |
36 | ············if (File.Exists( defaultFileName )) |
37 | ················return defaultFileName; |
38 | ············ThreadHelper.ThrowIfNotOnUIThread(); |
39 | ············var assemblyName = project.DteProject().Properties.Item( "AssemblyName" ).Value; |
40 | ············if (assemblyName == null) |
41 | ················return null; |
42 | ············string mappingFile = Path.Combine( project.FullPath, assemblyName + "ndo.xml" ); |
43 | ············if (File.Exists( mappingFile )) |
44 | ················return mappingFile; |
45 | ············return null; |
46 | ········} |
47 | |
48 | |
49 | ········public static string DefaultMappingFileName( this EnvDTE.Project project ) |
50 | ········{ |
51 | ············ThreadHelper.ThrowIfNotOnUIThread(); |
52 | ············return Path.Combine( Path.GetDirectoryName( project.FullName ), "NDOMapping.xml" ); |
53 | ········} |
54 | |
55 | |
56 | ········public static string MappingFilePath( this EnvDTE.Project project ) |
57 | ········{ |
58 | ············string defaultFileName = project.DefaultMappingFileName(); |
59 | ············if (File.Exists( defaultFileName )) |
60 | ················return defaultFileName; |
61 | ············ThreadHelper.ThrowIfNotOnUIThread(); |
62 | ············var assemblyName = project.Properties.Item( "AssemblyName" ).Value; |
63 | ············if (assemblyName == null) |
64 | ················return null; |
65 | ············string mappingFile = Path.Combine( project.FullName, assemblyName + "ndo.xml" ); |
66 | ············if (File.Exists( mappingFile )) |
67 | ················return mappingFile; |
68 | ············return null; |
69 | ········} |
70 | |
71 | |
72 | ········public static bool MappingFileExists(this Project project ) |
73 | ········{ |
74 | ············return project.MappingFilePath() != null; |
75 | ········} |
76 | |
77 | ········public static IVsHierarchy GetVsHierarchy( this EnvDTE.Project project ) |
78 | ········{ |
79 | ············ThreadHelper.ThrowIfNotOnUIThread(); |
80 | ············IVsHierarchy projectHierarchy = null; |
81 | |
82 | ············( (IVsSolution) Package.GetGlobalService( typeof( IVsSolution ) ) ).GetProjectOfUniqueName( project.UniqueName, out projectHierarchy ); |
83 | ············return projectHierarchy; |
84 | ········} |
85 | |
86 | |
87 | ········public static IVsHierarchy GetVsHierarchy( this Project project ) |
88 | ········{ |
89 | ············IVsHierarchy projectHierarchy; |
90 | ············project.GetItemInfo( out projectHierarchy, out _, out _ ); |
91 | |
92 | ············return projectHierarchy; |
93 | ········} |
94 | ····} |
95 | } |
96 |