66
77 <Import Project =" MSBuild.OutputPaths.targets" />
88
9+ <!--
10+ ========================================================================================================================
11+ TARGETS
12+ ========================================================================================================================
13+ -->
14+
15+ <!-- Graph Build with ProjectReference -->
16+ <ItemGroup >
17+ <ProjectReferenceTargets Include =" Restore" Targets =" Restore" />
18+ <ProjectReferenceTargets Include =" Build" Targets =" Build" />
19+ <ProjectReferenceTargets Include =" Clean" Targets =" Clean" />
20+ <ProjectReferenceTargets Include =" Rebuild" Targets =" Rebuild" />
21+ <ProjectReferenceTargets Include =" Test" Targets =" Test" />
22+ <ProjectReferenceTargets Include =" Pack" Targets =" Pack" />
23+ <ProjectReferenceTargets Include =" Publish" Targets =" Publish" />
24+ </ItemGroup >
25+
26+ <!-- Common Targets for the Project Context -->
27+
28+ <PropertyGroup >
29+ <!-- CollectReferences -->
30+ <CollectReferencesDependsOn >CollectProjectReferences;CollectPackageReferences</CollectReferencesDependsOn >
31+ <!-- PrepareReferences -->
32+ <PrepareReferencesDependsOn >PrepareProjectReferences;PreparePackageReferences</PrepareReferencesDependsOn >
33+ <!-- ResolveReferences -->
34+ <ResolveReferencesDependsOn >ResolveProjectReferences;ResolvePackageReferences</ResolveReferencesDependsOn >
35+ </PropertyGroup >
36+
37+ <PropertyGroup >
38+ <!-- Restore -->
39+ <RestoreDependsOn >RestoreCheck;ResolveReferences</RestoreDependsOn >
40+ <!-- Build -->
41+ <BuildDependsOn >BuildCheck;BuildOnlySettings;ResolveReferences</BuildDependsOn >
42+ <!-- Clean -->
43+ <CleanDependsOn >BuildCheck;CleanBuildFolder;PublishCheck;CleanPublishFolder;PrepareReferences</CleanDependsOn >
44+ </PropertyGroup >
45+
46+ <PropertyGroup Condition =" '$(NoBuild)' != 'true'" >
47+ <!-- Test -->
48+ <TestDependsOn >BuildCheck;Build</TestDependsOn >
49+ <!-- Pack -->
50+ <PackDependsOn >BuildCheck;Build</PackDependsOn >
51+ <!-- Publish -->
52+ <PublishDependsOn >BuildCheck;Build</PublishDependsOn >
53+ </PropertyGroup >
54+
55+ <PropertyGroup Condition =" '$(NoBuild)' == 'true'" >
56+ <!-- Test -->
57+ <TestDependsOn >ResolveReferences</TestDependsOn >
58+ <!-- Pack -->
59+ <PackDependsOn >ResolveReferences</PackDependsOn >
60+ <!-- Publish -->
61+ <PublishDependsOn >ResolveReferences</PublishDependsOn >
62+ </PropertyGroup >
63+
64+ <!-- Targets for PackageReference protocol -->
65+
66+ <Target Name =" CollectPackageReferences" Returns =" @(PackageReference)" />
67+
68+ <Target Name =" PreparePackageReferences" >
69+ <Warning Code =" PROJ0000" File =" [MSBuild.Project.Sdk]" Text =" The Project does not implement 'PreparePackageReferences' operation." />
70+ </Target >
71+
72+ <Target Name =" ResolvePackageReferences" Returns =" @(_ResolvedPackage)" >
73+ <Warning Code =" PROJ0000" File =" [MSBuild.Project.Sdk]" Text =" The Project does not implement 'ResolvePackageReferences' operation." />
74+ </Target >
75+
76+ <!-- Targets for ProjectReference protocol -->
77+
78+ <Target Name =" CollectProjectReferences" Returns =" @(ProjectReference)" />
79+
80+ <Target Name =" PrepareProjectReferences" >
81+ <Warning Code =" PROJ0000" File =" [MSBuild.Project.Sdk]" Text =" The Project does not implement 'PrepareProjectReferences' operation." />
82+ </Target >
83+
84+ <Target Name =" ResolveProjectReferences" Returns =" @(_ResolvedProject)" >
85+ <Warning Code =" PROJ0000" File =" [MSBuild.Project.Sdk]" Text =" The Project does not implement 'ResolveProjectReferences' operation." />
86+ </Target >
87+
88+ <Target Name =" CollectReferences" DependsOnTargets =" $(CollectReferencesDependsOn)" Returns =" @(ProjectReference);@(PackageReference)" />
89+
90+ <Target Name =" PrepareReferences" DependsOnTargets =" $(PrepareReferencesDependsOn)" >
91+ <Warning Code =" PROJ0000" File =" [MSBuild.Project.Sdk]" Text =" The Project does not implement 'PrepareReferences' operation." />
92+ </Target >
93+
94+ <Target Name =" ResolveReferences" DependsOnTargets =" $(ResolveReferencesDependsOn)" Returns =" @(_ResolvedProject);@(_ResolvedPackage)" >
95+ <Warning Code =" PROJ0000" File =" [MSBuild.Project.Sdk]" Text =" The Project does not implement 'ResolveReferences' operation." />
96+ </Target >
97+
98+ <Target Name =" RestoreCheck" >
99+ <Warning Code =" PROJ0000" File =" [MSBuild.Project.Sdk]" Text =" The Project does not implement 'RestoreCheck' operation." />
100+ </Target >
101+
102+ <Target Name =" Restore" DependsOnTargets =" $(RestoreDependsOn)" >
103+ <Warning Code =" PROJ0000" File =" [MSBuild.Project.Sdk]" Text =" The Project does not implement 'Restore' operation." />
104+ </Target >
105+
106+ <PropertyGroup >
107+ <BuildingProject >false</BuildingProject >
108+ <BuildingSolution >false</BuildingSolution >
109+ <BuildingSolutionFile >false</BuildingSolutionFile >
110+ </PropertyGroup >
111+
112+ <Target Name =" BuildOnlySettings" >
113+ <PropertyGroup >
114+ <BuildingProject >true</BuildingProject >
115+ <BuildingSolution >true</BuildingSolution >
116+ <BuildingSolutionFile >true</BuildingSolutionFile >
117+ </PropertyGroup >
118+ </Target >
119+
120+ <Target Name =" BuildCheck" >
121+ <Warning Code =" PROJ0000" File =" [MSBuild.Project.Sdk]" Text =" The Project does not implement 'BuildCheck' operation." />
122+ </Target >
123+
124+ <Target Name =" Build" DependsOnTargets =" $(BuildDependsOn)" Returns =" @(CollectedBuildOutput)" >
125+ <Warning Code =" PROJ0000" File =" [MSBuild.Project.Sdk]" Text =" The Project does not implement 'Build' operation." />
126+ </Target >
127+
128+ <Target Name =" CleanBuildFolder" >
129+ <Warning Code =" PROJ0000" File =" [MSBuild.Project.Sdk]" Text =" The Project does not implement 'CleanBuildFolder' operation." />
130+ </Target >
131+
132+ <Target Name =" CleanPublishFolder" >
133+ <Warning Code =" PROJ0000" File =" [MSBuild.Project.Sdk]" Text =" The Project does not implement 'CleanPublishFolder' operation." />
134+ </Target >
135+
136+ <Target Name =" Clean" DependsOnTargets =" $(CleanDependsOn)" >
137+ <Warning Code =" PROJ0000" File =" [MSBuild.Project.Sdk]" Text =" The Project does not implement 'Clean' operation." />
138+ </Target >
139+
140+ <Target Name =" Rebuild" DependsOnTargets =" $(RebuildDependsOn)" Returns =" @(CollectedBuildOutput)" >
141+ <Message Importance =" High" Text =" Rebuilding the project..." />
142+ </Target >
143+
144+ <Target Name =" MSTest" Condition =" '$(BuildingInsideVisualStudio)' != 'true'" >
145+ <Warning Code =" PROJ0000" File =" [MSBuild.Project.Sdk]" Text =" The Project does not implement 'MSTest' operation." />
146+ </Target >
147+
148+ <Target Name =" VSTest" Condition =" '$(BuildingInsideVisualStudio)' == 'true'" >
149+ <Warning Code =" PROJ0000" File =" [MSBuild.Project.Sdk]" Text =" The Project does not implement 'VSTest' operation." />
150+ </Target >
151+
152+ <Target Name =" Test" DependsOnTargets =" $(TestDependsOn)" >
153+ <Warning Code =" PROJ0000" File =" [MSBuild.Project.Sdk]" Text =" The Project does not implement 'Test' operation." />
154+ </Target >
155+
156+ <Target Name =" Pack" DependsOnTargets =" $(PackDependsOn)" >
157+ <Warning Code =" PROJ0000" File =" [MSBuild.Project.Sdk]" Text =" The Project does not implement 'Pack' operation." />
158+ </Target >
159+
160+ <Target Name =" PublishCheck" >
161+ <Warning Code =" PROJ0000" File =" [MSBuild.Project.Sdk]" Text =" The Project does not implement 'PublishCheck' operation." />
162+ </Target >
163+
164+ <Target Name =" Publish" DependsOnTargets =" $(PublishDependsOn)" >
165+ <Warning Code =" PROJ0000" File =" [MSBuild.Project.Sdk]" Text =" The Project does not implement 'Publish' operation." />
166+ </Target >
167+
168+ <!-- Targets for the Solution Context -->
169+
170+ <Target Name =" GetProjectMetadata" Returns =" @(_ProjectMetadata)" >
171+
172+ <!-- Resolve the current project directory. Make it relative if it is relative to the solution directory. -->
173+ <PropertyGroup >
174+ <_ProjectInSolution Condition =" '$(MSBuildSolutionDirectory)' != ''" >$(MSBuildProjectDirectory.StartsWith('$(MSBuildSolutionDirectory)'))</_ProjectInSolution >
175+ <_ProjectDirectory Condition =" '$(MSBuildSolutionDirectory)' != '' AND '$(_ProjectInSolution)' == 'true'" >$([MSBuild]::MakeRelative('$(MSBuildSolutionDirectory)', '$(MSBuildProjectDirectory)'))</_ProjectDirectory >
176+ <_ProjectDirectory Condition =" '$(_ProjectDirectory)' == ''" >$(MSBuildProjectDirectory)</_ProjectDirectory >
177+ </PropertyGroup >
178+
179+ <!-- Populate `_ProjectMetadata` with the currrent project information -->
180+ <ItemGroup >
181+ <_ProjectMetadata Include =" $(MSBuildProjectName)" >
182+ <ProjectType >$(MSBuildProjectType)</ProjectType >
183+ <ProjectDirectory >$(_ProjectDirectory)</ProjectDirectory >
184+ <ProjectInSolution >$(_ProjectInSolution)</ProjectInSolution >
185+ <UsingMSBuildSdk >$(UsingMSBuildSdk)</UsingMSBuildSdk >
186+ <Configurations >$(Configurations)</Configurations >
187+ <Platforms >$(Platforms)</Platforms >
188+ </_ProjectMetadata >
189+ </ItemGroup >
190+
191+ <!-- Clean-up temporary properties -->
192+ <PropertyGroup >
193+ <_ProjectDirectory />
194+ <_ProjectInSolution />
195+ </PropertyGroup >
196+ </Target >
197+
9198</Project >
0 commit comments