2 ***********************************************************************************************
\r
3 Microsoft.NET.Sdk.Publish.MSDeployPackage.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
18 ***********************************************************************************************
\r
20 ***********************************************************************************************
\r
22 <UsingTask TaskName="MSDeploy" AssemblyFile="$(_PublishTaskAssemblyFullPath)"/>
\r
23 <UsingTask TaskName="VSMSDeploy" AssemblyFile="$(_PublishTaskAssemblyFullPath)"/>
\r
24 <UsingTask TaskName="NormalizeServiceUrl" AssemblyFile="$(_PublishTaskAssemblyFullPath)"/>
\r
25 <UsingTask TaskName="ValidateParameter" AssemblyFile="$(_PublishTaskAssemblyFullPath)"/>
\r
26 <UsingTask TaskName="CreateManifestFile" AssemblyFile="$(_PublishTaskAssemblyFullPath)" />
\r
27 <UsingTask TaskName="CreateParameterFile" AssemblyFile="$(_PublishTaskAssemblyFullPath)" />
\r
28 <UsingTask TaskName="CreateMSDeployScript" AssemblyFile="$(_PublishTaskAssemblyFullPath)" />
\r
31 <_DotNetPublishFiles>
\r
32 MSDeployPackagePublish;
\r
33 </_DotNetPublishFiles>
\r
37 ***********************************************************************************************
\r
38 TARGET : MSDeployPackagePublish
\r
39 ***********************************************************************************************
\r
42 <MSDeployPackagePublishDependsOn>
\r
43 $(MSDeployPackagePublishDependsOn);
\r
44 _InitMSDeployPackageProperties;
\r
45 _PrepareForMsDeployPublish;
\r
46 _CreateManifestFiles;
\r
47 _CreateParameterFiles;
\r
48 _CreateMSDeployScript;
\r
49 </MSDeployPackagePublishDependsOn>
\r
52 <Target Name="MSDeployPackagePublish" DependsOnTargets="$(MSDeployPackagePublishDependsOn)">
\r
55 <MSDeployPublishSourceType>manifest</MSDeployPublishSourceType>
\r
56 <MSDeployPublishSourceRoot>$(_MsDeploySourceManifestPath)</MSDeployPublishSourceRoot>
\r
57 <!--Destination is alway a manifest-->
\r
58 <MSDeployPublishDestinationType>Package</MSDeployPublishDestinationType>
\r
59 <MSDeployPublishDestinationRoot>$(PackageLocation)</MSDeployPublishDestinationRoot>
\r
60 <RetryAttemptsForDeployment Condition=" '$(RetryAttemptsForDeployment)' == '' ">2</RetryAttemptsForDeployment>
\r
61 <PublishEnableLinks Condition="'$(PublishEnableLinks)' == ''"></PublishEnableLinks>
\r
62 <PublishDisableLinks Condition="'$(PublishDisableLinks)' == ''">AppPoolExtension;ContentExtension;CertificateExtension</PublishDisableLinks>
\r
63 <!-- UserAgent string sent to msdeploy -->
\r
64 <_MSDeployUserAgentSource>CmdLine</_MSDeployUserAgentSource>
\r
65 <_MSDeployUserAgent>VS$(_MSDeployUserAgentSource)</_MSDeployUserAgent>
\r
66 <!-- MsDeploy Api is not supported for core yet -->
\r
67 <UseMsDeployExe Condition="'$(UseMsDeployExe)' == '' And '$(MSBuildRuntimeType)' == 'Core'">true</UseMsDeployExe>
\r
70 <!-- Data Passed to MSDeploy -->
\r
72 <MsDeploySourceProviderSetting Remove="@(MsDeploySourceProviderSetting)" />
\r
73 <MsDeploySourceProviderSetting Include="$(MSDeployPublishSourceType)">
\r
74 <Path>$(MSDeployPublishSourceRoot)</Path>
\r
75 </MsDeploySourceProviderSetting>
\r
77 <MsDeployDestinationProviderSetting Remove="@(MsDeployDestinationProviderSetting)" />
\r
78 <MsDeployDestinationProviderSetting Include="$(MSDeployPublishDestinationType)">
\r
79 <Path>$(MSDeployPublishDestinationRoot)</Path>
\r
80 </MsDeployDestinationProviderSetting>
\r
83 <VSMSDeploy Condition="'$(UseMsdeployExe)' != 'true'"
\r
84 MSDeployVersionsToTry="$(_MSDeployVersionsToTry)"
\r
85 Source="@(MsDeploySourceProviderSetting)"
\r
86 Destination="@(MsDeployDestinationProviderSetting)"
\r
87 DeploymentTraceLevel="$(PackageTraceLevel)"
\r
88 DisableLink="$(PublishDisableLinks)"
\r
89 EnableLink="$(PublishEnableLinks)"
\r
90 ImportDeclareParametersItems="$(_MSDeployParametersFilePath)"
\r
91 ReplaceRuleItems="@(MsDeployReplaceRules)"
\r
92 RetryAttempts="$(RetryAttemptsForDeployment)">
\r
93 <Output TaskParameter="Result" PropertyName="PackageResult" />
\r
97 Condition="'$(UseMsdeployExe)' == 'true'"
\r
99 Source="@(MsDeploySourceProviderSetting)"
\r
100 Destination="@(MsDeployDestinationProviderSetting)"
\r
101 DisableLink="$(PublishDisableLinks)"
\r
102 EnableLink="$(PublishEnableLinks)"
\r
103 ImportDeclareParametersItems="$(_MSDeployParametersFilePath)"
\r
104 ReplaceRuleItems="@(MsDeployReplaceRules)"
\r
105 RetryAttempts="$(RetryAttemptsForDeployment)"
\r
106 ExePath="$(MSDeployPath)"
\r
111 ***********************************************************************************************
\r
112 TARGET : _InitMSDeployPackageProperties
\r
113 ***********************************************************************************************
\r
116 <Target Name="_InitMSDeployPackageProperties">
\r
119 <DefaultPackageFileName Condition="'$(DefaultPackageFileName)'==''">$(MSBuildProjectName).zip</DefaultPackageFileName>
\r
120 <PackageLocation Condition="'$(PackageLocation)' == ''">$(DesktopBuildPackageLocation)</PackageLocation>
\r
121 <PackageLocation Condition="'$(PackageLocation)' == ''">$(OutputPath)</PackageLocation>
\r
122 <PackageLocation Condition="'$([System.IO.Path]::GetExtension($(PackageLocation)))' == '' And !HasTrailingSlash('$(PackageLocation)')">$(PackageLocation)\</PackageLocation>
\r
123 <PackageLocation Condition="'$([System.IO.Path]::GetExtension($(PackageLocation)))' == '' ">$(PackageLocation)$(DefaultPackageFileName)</PackageLocation>
\r
124 <DeployIisAppPath Condition="'$(DeployIisAppPath)' ==''">Default Web Site</DeployIisAppPath>
\r
125 <EnableOptimisticParameterDefaultValue Condition="'$(EnableOptimisticParameterDefaultValue)'==''">True</EnableOptimisticParameterDefaultValue>
\r
128 <ConvertToAbsolutePath Paths="$(PackageLocation)">
\r
129 <Output TaskParameter="AbsolutePaths" PropertyName="PackageLocation"/>
\r
130 </ConvertToAbsolutePath>
\r
135 ***********************************************************************************************
\r
136 TARGET : _PrepareForMsDeployPackagePublish
\r
137 ***********************************************************************************************
\r
140 <Target Name="_PrepareForMsDeployPublish">
\r
143 <_destinationFolder Condition="'$(_destinationFolder)' == ''">$([System.IO.Path]::GetDirectoryName($(PackageLocation)))\</_destinationFolder>
\r
144 <_MsDeploySourceManifestPath Condition="'$(_MsDeploySourceManifestPath)' == ''">$(_destinationFolder)$(MSBuildProjectName).SourceManifest.xml</_MsDeploySourceManifestPath>
\r
145 <_MSDeployParametersFilePath Condition="'$(_MSDeployParametersFilePath)' == ''">$(_destinationFolder)$(MSBuildProjectName).Parameters.xml</_MSDeployParametersFilePath>
\r
146 <_MSDeploySetParametersFilePath Condition="'$(_MSDeploySetParametersFilePath)' == ''">$(_destinationFolder)$(MSBuildProjectName).SetParameters.xml</_MSDeploySetParametersFilePath>
\r
147 <_MSDeployScriptFilePath Condition="'$(_MSDeployScriptFilePath)' == ''">$(_destinationFolder)$(MSBuildProjectName).deploy.cmd</_MSDeployScriptFilePath>
\r
148 <_MSDeployReadMeFilePath Condition="'$(_MSDeployReadMeFilePath)' == ''">$(_destinationFolder)$(MSBuildProjectName).deploy-readme.txt</_MSDeployReadMeFilePath>
\r
152 <_PublishConfigFiles Include="$(_MsDeploySourceManifestPath);$(_MSDeployParametersFilePath);$(_MSDeploySetParametersFilePath);$(_MSDeployScriptFilePath);$(_MSDeployReadMeFilePath)" />
\r
155 <MakeDir Directories="$(_destinationFolder)" Condition="!Exists('$(_destinationFolder)')" ContinueOnError="true"/>
\r
156 <Delete Files="@(_PublishConfigFiles)" ContinueOnError="true" />
\r
157 <Touch AlwaysCreate="true" Files="@(_PublishConfigFiles)" ContinueOnError="true" />
\r
161 ***********************************************************************************************
\r
162 TARGET : _CreateManifestFiles
\r
163 ***********************************************************************************************
\r
166 <Target Name="_CreateManifestFiles">
\r
169 <MsDeploySourceManifest Remove="@(MsDeploySourceManifest)" />
\r
171 <MsDeploySourceManifest Include="IisApp" >
\r
172 <Path>$(PublishIntermediateOutputPath)</Path>
\r
173 </MsDeploySourceManifest>
\r
176 <ItemGroup Condition="'@(_EFSQLScripts)' != ''">
\r
177 <MsDeploySourceManifest Include="dbfullsql" >
\r
178 <Path>%(_EFSQLScripts.Identity)</Path>
\r
179 </MsDeploySourceManifest>
\r
182 <CreateManifestFile
\r
183 Manifests="@(MsDeploySourceManifest)"
\r
184 ManifestFile="$(_MsDeploySourceManifestPath)" />
\r
188 ***********************************************************************************************
\r
189 TARGET : _CreateMSDeployScript
\r
190 ***********************************************************************************************
\r
193 <Target Name="_CreateMSDeployScript">
\r
195 <CreateMsDeployScript
\r
196 Condition="'$(IsCreateMSDeployScriptDisabled)' != 'true'"
\r
197 ProjectName="$(MSBuildProjectName)"
\r
198 ScriptFullPath="$(_MSDeployScriptFilePath)"
\r
199 ReadMeFullPath="$(_MSDeployReadMeFilePath)"/>
\r
204 ***********************************************************************************************
\r
205 TARGET : _CreateParameterFiles
\r
206 ***********************************************************************************************
\r
209 <Target Name="_CreateParameterFiles">
\r
212 <MsDeployDeclareParameters Remove="@(MsDeployDeclareParameters)" />
\r
214 <MsDeployDeclareParameters Include="IIS Web Application Name" >
\r
215 <Kind>ProviderPath</Kind>
\r
216 <Scope>IisApp</Scope>
\r
217 <Match>$(PublishIntermediateOutputPath)</Match>
\r
218 <Description></Description>
\r
219 <DefaultValue>$(DeployIisAppPath)</DefaultValue>
\r
220 <Value>$(DeployIisAppPath)</Value>
\r
221 <Tags>IisApp</Tags>
\r
222 <Priority></Priority>
\r
223 <ExcludeFromSetParameter>false</ExcludeFromSetParameter>
\r
224 </MsDeployDeclareParameters>
\r
227 <ItemGroup Condition="'@(_EFSQLScripts)' != ''">
\r
228 <MsDeployDeclareParameters Include="%(_EFSQLScripts.DBContext)">
\r
229 <Kind>ProviderPath</Kind>
\r
230 <Scope>dbfullsql</Scope>
\r
231 <Match>%(_EFSQLScripts.Identity)</Match>
\r
232 <Description></Description>
\r
233 <DefaultValue>%(_EFSQLScripts.ConnectionString)</DefaultValue>
\r
234 <Value>%(_EFSQLScripts.ConnectionString)</Value>
\r
235 <Tags>dbfullsql</Tags>
\r
236 <Priority></Priority>
\r
237 <ExcludeFromSetParameter>false</ExcludeFromSetParameter>
\r
238 </MsDeployDeclareParameters>
\r
241 <CreateParameterFile
\r
242 Parameters="@(MsDeployDeclareParameters)"
\r
243 DeclareSetParameterFile="$(_MSDeployParametersFilePath)"
\r
244 IncludeDefaultValue="True"
\r
245 OptimisticParameterDefaultValue="$(EnableOptimisticParameterDefaultValue)"
\r
246 SetParameterFile="$(_MSDeploySetParametersFilePath)"
\r
247 GenerateFileEvenIfEmpty="True" />
\r
251 ***********************************************************************************************
\r
253 ***********************************************************************************************
\r
256 <ItemDefinitionGroup>
\r
257 <MsDeploySourceProviderSetting>
\r
259 <ComputerName></ComputerName>
\r
260 <!--<Wmsvc></Wmsvc> Not supported yet-->
\r
261 <UserName></UserName>
\r
262 <Password></Password>
\r
263 <EncryptPassword></EncryptPassword>
\r
264 <IncludeAcls></IncludeAcls>
\r
265 <authType></authType>
\r
266 <prefetchPayload></prefetchPayload>
\r
267 </MsDeploySourceProviderSetting>
\r
268 </ItemDefinitionGroup>
\r
270 <ItemDefinitionGroup>
\r
271 <MsDeployDestinationProviderSetting>
\r
273 <ComputerName></ComputerName>
\r
274 <!--<Wmsvc></Wmsvc> Not supported yet-->
\r
275 <UserName></UserName>
\r
276 <Password></Password>
\r
277 <EncryptPassword></EncryptPassword>
\r
278 <IncludeAcls></IncludeAcls>
\r
279 <authType></authType>
\r
280 <prefetchPayload></prefetchPayload>
\r
281 </MsDeployDestinationProviderSetting>
\r
282 </ItemDefinitionGroup>
\r
285 DeploymentSkipRule(string skipAction, string objectName, string absolutePath, string XPath);-->
\r
286 <ItemDefinitionGroup>
\r
287 <MsDeploySkipRules>
\r
288 <SkipAction></SkipAction>
\r
289 <ObjectName></ObjectName>
\r
290 <AbsolutePath></AbsolutePath>
\r
292 <KeyAttribute></KeyAttribute>
\r
293 <!--Source, Destination, Both(the default)-->
\r
295 </MsDeploySkipRules>
\r
296 </ItemDefinitionGroup>
\r
298 <!-- AdditionalProviderSettings denote the additionProviderSetting need to be set in the manifest files-->
\r
299 <ItemDefinitionGroup>
\r
300 <MsDeploySourceManifest>
\r
301 <Path>Unknown</Path>
\r
302 <AdditionalProviderSettings></AdditionalProviderSettings>
\r
303 </MsDeploySourceManifest>
\r
304 </ItemDefinitionGroup>
\r