092a7c6254ad0bb598c0899b4f37f9360b7422e6
[platform/core/dotnet/build-tools.git] /
1 <!--\r
2 ***********************************************************************************************\r
3 Microsoft.NET.Sdk.Publish.targets  \r
4 \r
5 WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have\r
6           created a backup copy.  Incorrect changes to this file will make it\r
7           impossible to load or build your web deploy projects from the command-line or the IDE.\r
8 \r
9 This file defines the steps in the standard build process to deploy web application projects.\r
10 \r
11 Copyright (C) Microsoft Corporation. All rights reserved.\r
12 ***********************************************************************************************\r
13 -->\r
14 \r
15 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
16 \r
17   <!-- Properties corresponding to the tasks and targets path-->\r
18   \r
19   <PropertyGroup>\r
20     <!-- We want to force this property to be true, hence not adding a condition check -->\r
21     <SupportsDeployOnBuild>true</SupportsDeployOnBuild>\r
22     <_PublishTaskFramework Condition=" '$(MSBuildRuntimeType)' == 'Core'">netcoreapp1.0</_PublishTaskFramework>\r
23     <_PublishTaskFramework Condition=" '$(_PublishTaskFramework)' == ''">net46</_PublishTaskFramework>\r
24     <_PublishTasksDir Condition=" '$(_PublishTasksDir)'=='' ">$(MSBuildThisFileDirectory)..\..\tools\$(_PublishTaskFramework)\</_PublishTasksDir>\r
25     <_PublishTaskAssemblyFullPath Condition=" '$(_PublishTaskAssemblyFullPath)'=='' ">$(_PublishTasksDir)Microsoft.NET.Sdk.Publish.Tasks.dll</_PublishTaskAssemblyFullPath>\r
26     <_CopyTargetsDir Condition=" '$(_CopyTargetsDir)' == ''">$(MSBuildThisFileDirectory)CopyTargets\</_CopyTargetsDir>\r
27     <_TransformTargetsDir Condition=" '$(_TransformTargetsDir)' == ''">$(MSBuildThisFileDirectory)TransformTargets\</_TransformTargetsDir>\r
28     <_ComputeTargetsDir Condition=" '$(_ComputeTargetsDir)'=='' ">$(MSBuildThisFileDirectory)ComputeTargets\</_ComputeTargetsDir>\r
29     <_PublishTargetsDir Condition=" '$(_PublishTargetsDir)'=='' ">$(MSBuildThisFileDirectory)PublishTargets\</_PublishTargetsDir>\r
30     <_PublishProfilesDir Condition=" '$(_PublishProfilesDir)'=='' ">$(MSBuildThisFileDirectory)PublishProfiles\</_PublishProfilesDir>\r
31     <_DotNetCLIToolTargetsDir Condition=" '$(_DotNetCLIToolTargetsDir)'=='' ">$(MSBuildThisFileDirectory)DotNetCLIToolTargets\</_DotNetCLIToolTargetsDir>\r
32   </PropertyGroup>\r
33 \r
34   <!-- Extension points for BeforePublish and AfterPublish-->\r
35   <Target Name="BeforePublish" />\r
36   <Target Name="AfterPublish" />\r
37 \r
38   <!--\r
39   ***********************************************************************************************\r
40   Import the PublishProfiles\r
41   ***********************************************************************************************\r
42  -->\r
43 \r
44   <PropertyGroup>\r
45     <_PublishProfileRootFolder Condition="'$(_PublishProfileRootFolder)' == '' and '$(MSBuildProjectExtension)' =='.vbproj' ">$(MSBuildProjectDirectory)\My Project\PublishProfiles\</_PublishProfileRootFolder>\r
46     <_PublishProfileRootFolder Condition="'$(_PublishProfileRootFolder)' == '' and '$(MSBuildProjectExtension)' =='.csproj' ">$(MSBuildProjectDirectory)\Properties\PublishProfiles\</_PublishProfileRootFolder>\r
47     <PublishProfile Condition="'$(PublishProfile)' ==''">FileSystem</PublishProfile>\r
48     <PublishProfileName Condition="'$(PublishProfileName)' == ''">$([System.IO.Path]::GetFileNameWithoutExtension($(PublishProfile)))</PublishProfileName>\r
49     <PublishProfileFullPath Condition="'$(PublishProfileFullPath)' == ''">$(_PublishProfileRootFolder)$(PublishProfileName).pubxml</PublishProfileFullPath>\r
50     <PublishProfileFullPath Condition="!Exists('$(PublishProfileFullPath)')">$(_PublishProfilesDir)$(PublishProfileName).pubxml</PublishProfileFullPath>\r
51 \r
52     <!-- This is what get passed from the Visual Studio UI.-->\r
53     <WebPublishProfileFile Condition="'$(WebPublishProfileFile)' == ''">$(PublishProfileFullPath)</WebPublishProfileFile>\r
54   </PropertyGroup>\r
55 \r
56   <Import Project="$(WebPublishProfileFile)" Condition="Exists('$(WebPublishProfileFile)')" />\r
57   <Import Project="$(WebPublishProfileFile).user" Condition="Exists('$(WebPublishProfileFile).user')" />\r
58 \r
59   <!--\r
60   ***********************************************************************************************\r
61   Set the properties based on PublishProfile properties\r
62   ***********************************************************************************************\r
63  -->\r
64 \r
65   <PropertyGroup>\r
66     <!-- Properties for identifying the Publish Protocol -->\r
67     <PublishProtocol Condition="'$(PublishProtocol)' == ''">$(WebPublishMethod)</PublishProtocol>\r
68     <!-- For backward compat -->\r
69     <PublishProtocol Condition="'$(PublishProtocol)' == 'Package'">MSDeployPackage</PublishProtocol>\r
70     \r
71     <!-- For Docker Support -->\r
72     <PublishProtocol Condition="'$(DockerPublish)' == 'true'">Docker</PublishProtocol>\r
73     \r
74     <!-- Properties setting the publish intermediate paths -->\r
75     <PublishConfiguration Condition ="'$(PublishConfiguration)' == ''">$(LastUsedBuildConfiguration)</PublishConfiguration>\r
76     <PublishConfiguration Condition="'$(PublishConfiguration)' == ''">$(Configuration)</PublishConfiguration>\r
77     <_PublishConfigurationPath Condition="'$(_PublishConfigurationPath)' == '' And '$(PublishConfiguration)' != ''">$(PublishConfiguration)\</_PublishConfigurationPath>\r
78 \r
79     <_TargetFrameworkPath Condition="'$(_TargetFrameworkPath)' == '' And '$(TargetFramework)' != ''">$(TargetFramework)\</_TargetFrameworkPath>\r
80     <_RuntimeIdentifierPath Condition="'$(_RuntimeIdentifierPath)' == '' And '$(RuntimeIdentifier)' != '' ">$(RuntimeIdentifier)\</_RuntimeIdentifierPath>\r
81 \r
82     <BaseIntermediateOutputPath Condition="'$([System.IO.Path]::IsPathRooted($(BaseIntermediateOutputPath)))' == 'False'">$(MSBuildProjectDirectory)\$(BaseIntermediateOutputPath)</BaseIntermediateOutputPath>\r
83     <BaseIntermediateOutputPath Condition="!HasTrailingSlash('$(BaseIntermediateOutputPath)')">$(BaseIntermediateOutputPath)\</BaseIntermediateOutputPath>\r
84 \r
85     <PublishIntermediateTempPath Condition="'$(PublishIntermediateTempPath)' == ''">$([System.IO.Path]::GetFullPath($(BaseIntermediateOutputPath)$(_PublishConfigurationPath)$(_TargetFrameworkPath)$(_RuntimeIdentifierPath)PubTmp\))</PublishIntermediateTempPath>\r
86     <PublishIntermediateOutputPath Condition="'$(PublishIntermediateOutputPath)' == ''">$(PublishIntermediateTempPath)Out\</PublishIntermediateOutputPath>\r
87     <PublishIntermediateOutputPath Condition="'$(DockerPublish)' == 'true'">obj/Docker/publish/</PublishIntermediateOutputPath>\r
88     \r
89     <EFSQLScriptsFolderName Condition="$(EFSQLScriptsFolderName) == ''">EFSQLScripts</EFSQLScriptsFolderName>\r
90   </PropertyGroup>\r
91 \r
92   <!--\r
93   ***********************************************************************************************\r
94   Import the Compute target\r
95   ***********************************************************************************************\r
96  -->\r
97 \r
98   <Import Project="$(_ComputeTargetsDir)Microsoft.NET.Sdk.Publish.ComputeFiles.targets" Condition="Exists('$(_ComputeTargetsDir)Microsoft.NET.Sdk.Publish.ComputeFiles.targets')" />\r
99 \r
100   <!--\r
101   ***********************************************************************************************\r
102   Import the Copy target\r
103   ***********************************************************************************************\r
104  -->\r
105   \r
106   <Import Project="$(_CopyTargetsDir)Microsoft.NET.Sdk.Publish.CopyFiles.targets" Condition="Exists('$(_CopyTargetsDir)Microsoft.NET.Sdk.Publish.CopyFiles.targets')"/>\r
107 \r
108 \r
109   <!--\r
110   ***********************************************************************************************\r
111   Import the transform target\r
112   ***********************************************************************************************\r
113  -->\r
114 \r
115   <Import Project="$(_TransformTargetsDir)Microsoft.NET.Sdk.Publish.TransformFiles.targets" Condition="Exists('$(_TransformTargetsDir)Microsoft.NET.Sdk.Publish.TransformFiles.targets')"/>\r
116 \r
117   <!--\r
118   ***********************************************************************************************\r
119   Import the Protocol target\r
120   ***********************************************************************************************\r
121  -->\r
122   \r
123   <Import Project="$(_PublishTargetsDir)Microsoft.NET.Sdk.Publish.$(PublishProtocol).targets" Condition="Exists('$(_PublishTargetsDir)Microsoft.NET.Sdk.Publish.$(PublishProtocol).targets')"/>\r
124 \r
125   <!--\r
126   ***********************************************************************************************\r
127   Import the DotNetCLITool target\r
128   ***********************************************************************************************\r
129  -->\r
130 \r
131   <Import Project="$(_DotNetCLIToolTargetsDir)Microsoft.NET.Sdk.DotNetCLITool.targets" Condition="Exists('$(_DotNetCLIToolTargetsDir)Microsoft.NET.Sdk.DotNetCLITool.targets')"/>\r
132 \r
133   <!--\r
134   ***********************************************************************************************\r
135   TARGET : DotNetPublish\r
136   ***********************************************************************************************\r
137  -->\r
138 \r
139   <PropertyGroup>\r
140     <DotNetPublishDependsOn>\r
141       BeforePublish;\r
142       CorePublish;\r
143       AfterPublish;\r
144     </DotNetPublishDependsOn>\r
145   </PropertyGroup>\r
146 \r
147   <Target Name="DotNetPublish"\r
148           DependsOnTargets="$(DotNetPublishDependsOn)"\r
149           AfterTargets="Build"\r
150           Condition=" '$(DeployOnBuild)' == 'true' " >\r
151   </Target>\r
152 \r
153 \r
154   <PropertyGroup>\r
155     <CorePublishDependsOn>\r
156       $(_DotNetPublishComputeFiles);\r
157       $(_DotNetPublishCopyFiles);\r
158       $(_DotNetPublishTransformFiles);\r
159       $(_DotNetPublishFiles);\r
160     </CorePublishDependsOn>\r
161   </PropertyGroup>\r
162 \r
163   <Target Name="CorePublish" \r
164           DependsOnTargets="$(CorePublishDependsOn)"/>\r
165   \r
166 </Project>\r