2 ***********************************************************************************************
\r
3 Microsoft.NET.Sdk.Publish.targets
\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
9 This file defines the steps in the standard build process to deploy web application projects.
\r
11 Copyright (C) Microsoft Corporation. All rights reserved.
\r
12 ***********************************************************************************************
\r
15 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
\r
17 <!-- Properties corresponding to the tasks and targets path-->
\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
34 <!-- Extension points for BeforePublish and AfterPublish-->
\r
35 <Target Name="BeforePublish" />
\r
36 <Target Name="AfterPublish" />
\r
39 ***********************************************************************************************
\r
40 Import the PublishProfiles
\r
41 ***********************************************************************************************
\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
52 <!-- This is what get passed from the Visual Studio UI.-->
\r
53 <WebPublishProfileFile Condition="'$(WebPublishProfileFile)' == ''">$(PublishProfileFullPath)</WebPublishProfileFile>
\r
56 <Import Project="$(WebPublishProfileFile)" Condition="Exists('$(WebPublishProfileFile)')" />
\r
57 <Import Project="$(WebPublishProfileFile).user" Condition="Exists('$(WebPublishProfileFile).user')" />
\r
60 ***********************************************************************************************
\r
61 Set the properties based on PublishProfile properties
\r
62 ***********************************************************************************************
\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
71 <!-- For Docker Support -->
\r
72 <PublishProtocol Condition="'$(DockerPublish)' == 'true'">Docker</PublishProtocol>
\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
79 <_TargetFrameworkPath Condition="'$(_TargetFrameworkPath)' == '' And '$(TargetFramework)' != ''">$(TargetFramework)\</_TargetFrameworkPath>
\r
80 <_RuntimeIdentifierPath Condition="'$(_RuntimeIdentifierPath)' == '' And '$(RuntimeIdentifier)' != '' ">$(RuntimeIdentifier)\</_RuntimeIdentifierPath>
\r
82 <BaseIntermediateOutputPath Condition="'$([System.IO.Path]::IsPathRooted($(BaseIntermediateOutputPath)))' == 'False'">$(MSBuildProjectDirectory)\$(BaseIntermediateOutputPath)</BaseIntermediateOutputPath>
\r
83 <BaseIntermediateOutputPath Condition="!HasTrailingSlash('$(BaseIntermediateOutputPath)')">$(BaseIntermediateOutputPath)\</BaseIntermediateOutputPath>
\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
89 <EFSQLScriptsFolderName Condition="$(EFSQLScriptsFolderName) == ''">EFSQLScripts</EFSQLScriptsFolderName>
\r
93 ***********************************************************************************************
\r
94 Import the Compute target
\r
95 ***********************************************************************************************
\r
98 <Import Project="$(_ComputeTargetsDir)Microsoft.NET.Sdk.Publish.ComputeFiles.targets" Condition="Exists('$(_ComputeTargetsDir)Microsoft.NET.Sdk.Publish.ComputeFiles.targets')" />
\r
101 ***********************************************************************************************
\r
102 Import the Copy target
\r
103 ***********************************************************************************************
\r
106 <Import Project="$(_CopyTargetsDir)Microsoft.NET.Sdk.Publish.CopyFiles.targets" Condition="Exists('$(_CopyTargetsDir)Microsoft.NET.Sdk.Publish.CopyFiles.targets')"/>
\r
110 ***********************************************************************************************
\r
111 Import the transform target
\r
112 ***********************************************************************************************
\r
115 <Import Project="$(_TransformTargetsDir)Microsoft.NET.Sdk.Publish.TransformFiles.targets" Condition="Exists('$(_TransformTargetsDir)Microsoft.NET.Sdk.Publish.TransformFiles.targets')"/>
\r
118 ***********************************************************************************************
\r
119 Import the Protocol target
\r
120 ***********************************************************************************************
\r
123 <Import Project="$(_PublishTargetsDir)Microsoft.NET.Sdk.Publish.$(PublishProtocol).targets" Condition="Exists('$(_PublishTargetsDir)Microsoft.NET.Sdk.Publish.$(PublishProtocol).targets')"/>
\r
126 ***********************************************************************************************
\r
127 Import the DotNetCLITool target
\r
128 ***********************************************************************************************
\r
131 <Import Project="$(_DotNetCLIToolTargetsDir)Microsoft.NET.Sdk.DotNetCLITool.targets" Condition="Exists('$(_DotNetCLIToolTargetsDir)Microsoft.NET.Sdk.DotNetCLITool.targets')"/>
\r
134 ***********************************************************************************************
\r
135 TARGET : DotNetPublish
\r
136 ***********************************************************************************************
\r
140 <DotNetPublishDependsOn>
\r
144 </DotNetPublishDependsOn>
\r
147 <Target Name="DotNetPublish"
\r
148 DependsOnTargets="$(DotNetPublishDependsOn)"
\r
149 AfterTargets="Build"
\r
150 Condition=" '$(DeployOnBuild)' == 'true' " >
\r
155 <CorePublishDependsOn>
\r
156 $(_DotNetPublishComputeFiles);
\r
157 $(_DotNetPublishCopyFiles);
\r
158 $(_DotNetPublishTransformFiles);
\r
159 $(_DotNetPublishFiles);
\r
160 </CorePublishDependsOn>
\r
163 <Target Name="CorePublish"
\r
164 DependsOnTargets="$(CorePublishDependsOn)"/>
\r