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
30 <_DotNetPublishFiles>
\r
31 MSDeployPackagePublish;
\r
32 </_DotNetPublishFiles>
\r
36 ***********************************************************************************************
\r
37 TARGET : MSDeployPackagePublish
\r
38 ***********************************************************************************************
\r
41 <MSDeployPackagePublishDependsOn>
\r
42 $(MSDeployPackagePublishDependsOn);
\r
43 _InitMSDeployPackageLocation;
\r
44 _PrepareForMsDeployPublish;
\r
45 _CreateManifestFiles;
\r
46 _CreateParameterFiles;
\r
47 </MSDeployPackagePublishDependsOn>
\r
50 <Target Name="MSDeployPackagePublish" DependsOnTargets="$(MSDeployPackagePublishDependsOn)">
\r
53 <MSDeployPublishSourceType>manifest</MSDeployPublishSourceType>
\r
54 <MSDeployPublishSourceRoot>$(_MsDeploySourceManifestPath)</MSDeployPublishSourceRoot>
\r
55 <!--Destination is alway a manifest-->
\r
56 <MSDeployPublishDestinationType>Package</MSDeployPublishDestinationType>
\r
57 <MSDeployPublishDestinationRoot>$(PackageLocation)</MSDeployPublishDestinationRoot>
\r
58 <RetryAttemptsForDeployment Condition=" '$(RetryAttemptsForDeployment)' == '' ">2</RetryAttemptsForDeployment>
\r
59 <PublishEnableLinks Condition="'$(PublishEnableLinks)' == ''"></PublishEnableLinks>
\r
60 <PublishDisableLinks Condition="'$(PublishDisableLinks)' == ''">AppPoolExtension;ContentExtension;CertificateExtension</PublishDisableLinks>
\r
61 <!-- UserAgent string sent to msdeploy -->
\r
62 <_MSDeployUserAgentSource>CmdLine</_MSDeployUserAgentSource>
\r
63 <_MSDeployUserAgent>VS$(_MSDeployUserAgentSource)</_MSDeployUserAgent>
\r
64 <!-- MsDeploy Api is not supported for core yet -->
\r
65 <UseMsDeployExe Condition="'$(UseMsDeployExe)' == '' And '$(MSBuildRuntimeType)' == 'Core'">true</UseMsDeployExe>
\r
68 <!-- Data Passed to MSDeploy -->
\r
70 <MsDeploySourceProviderSetting Remove="@(MsDeploySourceProviderSetting)" />
\r
71 <MsDeploySourceProviderSetting Include="$(MSDeployPublishSourceType)">
\r
72 <Path>$(MSDeployPublishSourceRoot)</Path>
\r
73 </MsDeploySourceProviderSetting>
\r
75 <MsDeployDestinationProviderSetting Remove="@(MsDeployDestinationProviderSetting)" />
\r
76 <MsDeployDestinationProviderSetting Include="$(MSDeployPublishDestinationType)">
\r
77 <Path>$(MSDeployPublishDestinationRoot)</Path>
\r
78 </MsDeployDestinationProviderSetting>
\r
81 <VSMSDeploy Condition="'$(UseMsdeployExe)' != 'true'"
\r
82 MSDeployVersionsToTry="$(_MSDeployVersionsToTry)"
\r
83 Source="@(MsDeploySourceProviderSetting)"
\r
84 Destination="@(MsDeployDestinationProviderSetting)"
\r
85 DeploymentTraceLevel="$(PackageTraceLevel)"
\r
86 DisableLink="$(PublishDisableLinks)"
\r
87 EnableLink="$(PublishEnableLinks)"
\r
88 ImportDeclareParametersItems="$(_MSDeployParametersFilePath)"
\r
89 ReplaceRuleItems="@(MsDeployReplaceRules)"
\r
90 RetryAttempts="$(RetryAttemptsForDeployment)">
\r
91 <Output TaskParameter="Result" PropertyName="PackageResult" />
\r
95 Condition="'$(UseMsdeployExe)' == 'true'"
\r
97 Source="@(MsDeploySourceProviderSetting)"
\r
98 Destination="@(MsDeployDestinationProviderSetting)"
\r
99 DisableLink="$(PublishDisableLinks)"
\r
100 EnableLink="$(PublishEnableLinks)"
\r
101 ImportDeclareParametersItems="$(_MSDeployParametersFilePath)"
\r
102 ReplaceRuleItems="@(MsDeployReplaceRules)"
\r
103 RetryAttempts="$(RetryAttemptsForDeployment)"
\r
104 ExePath="$(MSDeployPath)"
\r
109 ***********************************************************************************************
\r
110 TARGET : _InitMSDeployPackageLocation
\r
111 ***********************************************************************************************
\r
114 <Target Name="_InitMSDeployPackageLocation">
\r
117 <DefaultPackageFileName Condition="'$(DefaultPackageFileName)'==''">$(MSBuildProjectName).zip</DefaultPackageFileName>
\r
118 <PackageLocation Condition="'$(PackageLocation)' == ''">$(DesktopBuildPackageLocation)</PackageLocation>
\r
119 <PackageLocation Condition="'$(PackageLocation)' == ''">$(OutputPath)</PackageLocation>
\r
120 <PackageLocation Condition="'$([System.IO.Path]::GetExtension($(PackageLocation)))' == '' And !HasTrailingSlash('$(PackageLocation)')">$(PackageLocation)\</PackageLocation>
\r
121 <PackageLocation Condition="'$([System.IO.Path]::GetExtension($(PackageLocation)))' == '' ">$(PackageLocation)$(DefaultPackageFileName)</PackageLocation>
\r
122 <DeployIisAppPath Condition="'$(DeployIisAppPath)' ==''">Default Web Site</DeployIisAppPath>
\r
125 <ConvertToAbsolutePath Paths="$(PackageLocation)">
\r
126 <Output TaskParameter="AbsolutePaths" PropertyName="PackageLocation"/>
\r
127 </ConvertToAbsolutePath>
\r
132 ***********************************************************************************************
\r
133 TARGET : _PrepareForMsDeployPackagePublish
\r
134 ***********************************************************************************************
\r
137 <Target Name="_PrepareForMsDeployPublish">
\r
140 <_destinationFolder Condition="'$(_destinationFolder)' == ''">$([System.IO.Path]::GetDirectoryName($(PackageLocation)))\</_destinationFolder>
\r
141 <_MsDeploySourceManifestPath Condition="'$(_MsDeploySourceManifestPath)' == ''">$(_destinationFolder)$(MSBuildProjectName).SourceManifest.xml</_MsDeploySourceManifestPath>
\r
142 <_MSDeployParametersFilePath Condition="'$(_MSDeployParametersFilePath)' == ''">$(_destinationFolder)$(MSBuildProjectName).Parameters.xml</_MSDeployParametersFilePath>
\r
146 <_PublishConfigFiles Include="$(_MsDeploySourceManifestPath);$(_MSDeployParametersFilePath)" />
\r
149 <MakeDir Directories="$(_destinationFolder)" Condition="!Exists('$(_destinationFolder)')" ContinueOnError="true"/>
\r
150 <Delete Files="@(_PublishConfigFiles)" ContinueOnError="true" />
\r
151 <Touch AlwaysCreate="true" Files="@(_PublishConfigFiles)" ContinueOnError="true" />
\r
155 ***********************************************************************************************
\r
156 TARGET : _CreateManifestFiles
\r
157 ***********************************************************************************************
\r
160 <Target Name="_CreateManifestFiles">
\r
163 <MsDeploySourceManifest Remove="@(MsDeploySourceManifest)" />
\r
165 <MsDeploySourceManifest Include="IisApp" >
\r
166 <Path>$(PublishIntermediateOutputPath)</Path>
\r
167 </MsDeploySourceManifest>
\r
170 <ItemGroup Condition="'@(_EFSQLScripts)' != ''">
\r
171 <MsDeploySourceManifest Include="dbfullsql" >
\r
172 <Path>%(_EFSQLScripts.Identity)</Path>
\r
173 </MsDeploySourceManifest>
\r
176 <CreateManifestFile
\r
177 Manifests="@(MsDeploySourceManifest)"
\r
178 ManifestFile="$(_MsDeploySourceManifestPath)" />
\r
182 ***********************************************************************************************
\r
183 TARGET : _CreateParameterFiles
\r
184 ***********************************************************************************************
\r
187 <Target Name="_CreateParameterFiles">
\r
190 <MsDeployDeclareParameters Remove="@(MsDeployDeclareParameters)" />
\r
192 <MsDeployDeclareParameters Include="IIS Web Application Name" >
\r
193 <Kind>ProviderPath</Kind>
\r
194 <Scope>IisApp</Scope>
\r
195 <Match>$(PublishIntermediateOutputPath)</Match>
\r
196 <Description></Description>
\r
197 <DefaultValue>$(DeployIisAppPath)</DefaultValue>
\r
198 <Value>$(DeployIisAppPath)</Value>
\r
199 <Tags>IisApp</Tags>
\r
200 <Priority></Priority>
\r
201 <ExcludeFromSetParameter>false</ExcludeFromSetParameter>
\r
202 </MsDeployDeclareParameters>
\r
205 <ItemGroup Condition="'@(_EFSQLScripts)' != ''">
\r
206 <MsDeployDeclareParameters Include="%(_EFSQLScripts.DBContext)">
\r
207 <Kind>ProviderPath</Kind>
\r
208 <Scope>dbfullsql</Scope>
\r
209 <Match>%(_EFSQLScripts.Identity)</Match>
\r
210 <Description></Description>
\r
211 <DefaultValue>%(_EFSQLScripts.ConnectionString)</DefaultValue>
\r
212 <Value>%(_EFSQLScripts.ConnectionString)</Value>
\r
213 <Tags>dbfullsql</Tags>
\r
214 <Priority></Priority>
\r
215 <ExcludeFromSetParameter>false</ExcludeFromSetParameter>
\r
216 </MsDeployDeclareParameters>
\r
219 <CreateParameterFile
\r
220 Parameters="@(MsDeployDeclareParameters)"
\r
221 DeclareSetParameterFile="$(_MSDeployParametersFilePath)"
\r
222 IncludeDefaultValue="True"
\r
223 GenerateFileEvenIfEmpty="True" />
\r
227 ***********************************************************************************************
\r
229 ***********************************************************************************************
\r
232 <ItemDefinitionGroup>
\r
233 <MsDeploySourceProviderSetting>
\r
235 <ComputerName></ComputerName>
\r
236 <!--<Wmsvc></Wmsvc> Not supported yet-->
\r
237 <UserName></UserName>
\r
238 <Password></Password>
\r
239 <EncryptPassword></EncryptPassword>
\r
240 <IncludeAcls></IncludeAcls>
\r
241 <authType></authType>
\r
242 <prefetchPayload></prefetchPayload>
\r
243 </MsDeploySourceProviderSetting>
\r
244 </ItemDefinitionGroup>
\r
246 <ItemDefinitionGroup>
\r
247 <MsDeployDestinationProviderSetting>
\r
249 <ComputerName></ComputerName>
\r
250 <!--<Wmsvc></Wmsvc> Not supported yet-->
\r
251 <UserName></UserName>
\r
252 <Password></Password>
\r
253 <EncryptPassword></EncryptPassword>
\r
254 <IncludeAcls></IncludeAcls>
\r
255 <authType></authType>
\r
256 <prefetchPayload></prefetchPayload>
\r
257 </MsDeployDestinationProviderSetting>
\r
258 </ItemDefinitionGroup>
\r
261 DeploymentSkipRule(string skipAction, string objectName, string absolutePath, string XPath);-->
\r
262 <ItemDefinitionGroup>
\r
263 <MsDeploySkipRules>
\r
264 <SkipAction></SkipAction>
\r
265 <ObjectName></ObjectName>
\r
266 <AbsolutePath></AbsolutePath>
\r
268 <KeyAttribute></KeyAttribute>
\r
269 <!--Source, Destination, Both(the default)-->
\r
271 </MsDeploySkipRules>
\r
272 </ItemDefinitionGroup>
\r
274 <!-- AdditionalProviderSettings denote the additionProviderSetting need to be set in the manifest files-->
\r
275 <ItemDefinitionGroup>
\r
276 <MsDeploySourceManifest>
\r
277 <Path>Unknown</Path>
\r
278 <AdditionalProviderSettings></AdditionalProviderSettings>
\r
279 </MsDeploySourceManifest>
\r
280 </ItemDefinitionGroup>
\r