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 ParameterName="DeployIisAppPath"
\r
54 ParameterValue="$(DeployIisAppPath)"/>
\r
57 <MSDeployPublishSourceType>manifest</MSDeployPublishSourceType>
\r
58 <MSDeployPublishSourceRoot>$(_MsDeploySourceManifestPath)</MSDeployPublishSourceRoot>
\r
59 <!--Destination is alway a manifest-->
\r
60 <MSDeployPublishDestinationType>Package</MSDeployPublishDestinationType>
\r
61 <MSDeployPublishDestinationRoot>$(PackageLocation)</MSDeployPublishDestinationRoot>
\r
62 <RetryAttemptsForDeployment Condition=" '$(RetryAttemptsForDeployment)' == '' ">2</RetryAttemptsForDeployment>
\r
63 <PublishEnableLinks Condition="'$(PublishEnableLinks)' == ''"></PublishEnableLinks>
\r
64 <PublishDisableLinks Condition="'$(PublishDisableLinks)' == ''">AppPoolExtension;ContentExtension;CertificateExtension</PublishDisableLinks>
\r
65 <!-- UserAgent string sent to msdeploy -->
\r
66 <_MSDeployUserAgentSource>CmdLine</_MSDeployUserAgentSource>
\r
67 <_MSDeployUserAgent>VS$(_MSDeployUserAgentSource)</_MSDeployUserAgent>
\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 : _InitMSDeployPackageLocation
\r
113 ***********************************************************************************************
\r
116 <Target Name="_InitMSDeployPackageLocation">
\r
119 <DefaultPackageFileName Condition="'$(DefaultPackageFileName)'==''">MSDeployPackage.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
129 ***********************************************************************************************
\r
130 TARGET : _PrepareForMsDeployPackagePublish
\r
131 ***********************************************************************************************
\r
134 <Target Name="_PrepareForMsDeployPublish">
\r
137 <_destinationFolder Condition="'$(_destinationFolder)' == ''">$([System.IO.Path]::GetDirectoryName($(PackageLocation)))\</_destinationFolder>
\r
138 <_MsDeploySourceManifestPath Condition="'$(_MsDeploySourceManifestPath)' == ''">$(_destinationFolder)$(MSBuildProjectName).SourceManifest.xml</_MsDeploySourceManifestPath>
\r
139 <_MSDeployParametersFilePath Condition="'$(_MSDeployParametersFilePath)' == ''">$(_destinationFolder)$(MSBuildProjectName).Parameters.xml</_MSDeployParametersFilePath>
\r
143 <_PublishConfigFiles Include="$(_MsDeploySourceManifestPath);$(_MSDeployParametersFilePath)" />
\r
146 <MakeDir Directories="$(_destinationFolder)" Condition="!Exists('$(_destinationFolder)')" ContinueOnError="true"/>
\r
147 <Delete Files="@(_PublishConfigFiles)" ContinueOnError="true" />
\r
148 <Touch AlwaysCreate="true" Files="@(_PublishConfigFiles)" ContinueOnError="true" />
\r
152 ***********************************************************************************************
\r
153 TARGET : _CreateManifestFiles
\r
154 ***********************************************************************************************
\r
157 <Target Name="_CreateManifestFiles">
\r
160 <MsDeploySourceManifest Remove="@(MsDeploySourceManifest)" />
\r
162 <MsDeploySourceManifest Include="IisApp" >
\r
163 <Path>$(PublishIntermediateOutputPath)</Path>
\r
164 </MsDeploySourceManifest>
\r
167 <ItemGroup Condition="'@(_EFSQLScripts)' != ''">
\r
168 <MsDeploySourceManifest Include="dbfullsql" >
\r
169 <Path>%(_EFSQLScripts.Identity)</Path>
\r
170 </MsDeploySourceManifest>
\r
173 <CreateManifestFile
\r
174 Manifests="@(MsDeploySourceManifest)"
\r
175 ManifestFile="$(_MsDeploySourceManifestPath)" />
\r
179 ***********************************************************************************************
\r
180 TARGET : _CreateParameterFiles
\r
181 ***********************************************************************************************
\r
184 <Target Name="_CreateParameterFiles">
\r
187 <MsDeployDeclareParameters Remove="@(MsDeployDeclareParameters)" />
\r
189 <MsDeployDeclareParameters Include="IIS Web Application Name" >
\r
190 <Kind>ProviderPath</Kind>
\r
191 <Scope>IisApp</Scope>
\r
192 <Match>$(PublishIntermediateOutputPath)</Match>
\r
193 <Description></Description>
\r
194 <DefaultValue>$(DeployIisAppPath)</DefaultValue>
\r
195 <Value>$(DeployIisAppPath)</Value>
\r
196 <Tags>IisApp</Tags>
\r
197 <Priority></Priority>
\r
198 <ExcludeFromSetParameter>false</ExcludeFromSetParameter>
\r
199 </MsDeployDeclareParameters>
\r
202 <ItemGroup Condition="'@(_EFSQLScripts)' != ''">
\r
203 <MsDeployDeclareParameters Include="%(_EFSQLScripts.DBContext)">
\r
204 <Kind>ProviderPath</Kind>
\r
205 <Scope>dbfullsql</Scope>
\r
206 <Match>%(_EFSQLScripts.Identity)</Match>
\r
207 <Description></Description>
\r
208 <DefaultValue>%(_EFSQLScripts.ConnectionString)</DefaultValue>
\r
209 <Value>%(_EFSQLScripts.ConnectionString)</Value>
\r
210 <Tags>dbfullsql</Tags>
\r
211 <Priority></Priority>
\r
212 <ExcludeFromSetParameter>false</ExcludeFromSetParameter>
\r
213 </MsDeployDeclareParameters>
\r
216 <CreateParameterFile
\r
217 Parameters="@(MsDeployDeclareParameters)"
\r
218 DeclareSetParameterFile="$(_MSDeployParametersFilePath)"
\r
219 IncludeDefaultValue="True"
\r
220 GenerateFileEvenIfEmpty="True" />
\r
224 ***********************************************************************************************
\r
226 ***********************************************************************************************
\r
229 <ItemDefinitionGroup>
\r
230 <MsDeploySourceProviderSetting>
\r
232 <ComputerName></ComputerName>
\r
233 <!--<Wmsvc></Wmsvc> Not supported yet-->
\r
234 <UserName></UserName>
\r
235 <Password></Password>
\r
236 <EncryptPassword></EncryptPassword>
\r
237 <IncludeAcls></IncludeAcls>
\r
238 <authType></authType>
\r
239 <prefetchPayload></prefetchPayload>
\r
240 </MsDeploySourceProviderSetting>
\r
241 </ItemDefinitionGroup>
\r
243 <ItemDefinitionGroup>
\r
244 <MsDeployDestinationProviderSetting>
\r
246 <ComputerName></ComputerName>
\r
247 <!--<Wmsvc></Wmsvc> Not supported yet-->
\r
248 <UserName></UserName>
\r
249 <Password></Password>
\r
250 <EncryptPassword></EncryptPassword>
\r
251 <IncludeAcls></IncludeAcls>
\r
252 <authType></authType>
\r
253 <prefetchPayload></prefetchPayload>
\r
254 </MsDeployDestinationProviderSetting>
\r
255 </ItemDefinitionGroup>
\r
258 DeploymentSkipRule(string skipAction, string objectName, string absolutePath, string XPath);-->
\r
259 <ItemDefinitionGroup>
\r
260 <MsDeploySkipRules>
\r
261 <SkipAction></SkipAction>
\r
262 <ObjectName></ObjectName>
\r
263 <AbsolutePath></AbsolutePath>
\r
265 <KeyAttribute></KeyAttribute>
\r
266 <!--Source, Destination, Both(the default)-->
\r
268 </MsDeploySkipRules>
\r
269 </ItemDefinitionGroup>
\r
271 <!-- AdditionalProviderSettings denote the additionProviderSetting need to be set in the manifest files-->
\r
272 <ItemDefinitionGroup>
\r
273 <MsDeploySourceManifest>
\r
274 <Path>Unknown</Path>
\r
275 <AdditionalProviderSettings></AdditionalProviderSettings>
\r
276 </MsDeploySourceManifest>
\r
277 </ItemDefinitionGroup>
\r