From 9622183d7529dab7b4d988faa7810fe6e92326a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Chalet?= Date: Mon, 24 Jun 2024 18:04:45 +0200 Subject: [PATCH] Replace the MSBuild.Microsoft.VisualStudio.Web.targets reference by a local copy --- eng/Tools.props | 1 - ...Publishing.AllFilesInProjectFolder.targets | 181 + ...eb.Publishing.AllFilesInTheProject.targets | 242 + ...eb.Publishing.OnlyFilesToRunTheApp.targets | 445 ++ ...crosoft.Web.Publishing.Deploy.FPSE.targets | 59 + ...icrosoft.Web.Publishing.Deploy.FTP.targets | 60 + ...t.Web.Publishing.Deploy.FileSystem.targets | 116 + ...oft.Web.Publishing.Deploy.MsDeploy.targets | 49 + ...soft.Web.Publishing.Deploy.Package.targets | 54 + ...oft.Web.Publishing.MsDeploy.Common.targets | 1192 ++++ .../web/Web/Microsoft.DNX.Publishing.targets | 459 ++ .../Web/Microsoft.Web.Publishing.Tasks.dll | Bin 0 -> 353984 bytes .../web/Web/Microsoft.Web.Publishing.targets | 4802 +++++++++++++++++ .../Microsoft.Web.AzureAD.Publishing.targets | 300 + .../web/Web/Microsoft.Web.XmlTransform.dll | Bin 0 -> 76992 bytes .../Web/Microsoft.WebSite.Publishing.targets | 530 ++ .../Web/Powershell/1.0.1/default-publish.ps1 | 101 + .../Web/Powershell/1.0.1/filesystem.pubxml | 13 + .../web/Web/Powershell/1.0.1/package.pubxml | 13 + .../Web/Powershell/1.0.1/publish-module.psm1 | 658 +++ ....Web.Publishing.AspNetCompileMerge.targets | 774 +++ .../Microsoft.WebApplication.Build.Tasks.Dll | Bin 0 -> 44824 bytes .../Microsoft.WebApplication.targets | 396 ++ .../OpenIddict.Sandbox.AspNet.Client.csproj | 2 +- .../OpenIddict.Sandbox.AspNet.Server.csproj | 2 +- 25 files changed, 10446 insertions(+), 3 deletions(-) create mode 100644 eng/msbuild/web/Web/CollectFiles/Microsoft.Web.Publishing.AllFilesInProjectFolder.targets create mode 100644 eng/msbuild/web/Web/CollectFiles/Microsoft.Web.Publishing.AllFilesInTheProject.targets create mode 100644 eng/msbuild/web/Web/CollectFiles/Microsoft.Web.Publishing.OnlyFilesToRunTheApp.targets create mode 100644 eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.Deploy.FPSE.targets create mode 100644 eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.Deploy.FTP.targets create mode 100644 eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.Deploy.FileSystem.targets create mode 100644 eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.Deploy.MsDeploy.targets create mode 100644 eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.Deploy.Package.targets create mode 100644 eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.MsDeploy.Common.targets create mode 100644 eng/msbuild/web/Web/Microsoft.DNX.Publishing.targets create mode 100644 eng/msbuild/web/Web/Microsoft.Web.Publishing.Tasks.dll create mode 100644 eng/msbuild/web/Web/Microsoft.Web.Publishing.targets create mode 100644 eng/msbuild/web/Web/Microsoft.Web.Publishing/ImportAfter/Microsoft.Web.AzureAD.Publishing.targets create mode 100644 eng/msbuild/web/Web/Microsoft.Web.XmlTransform.dll create mode 100644 eng/msbuild/web/Web/Microsoft.WebSite.Publishing.targets create mode 100644 eng/msbuild/web/Web/Powershell/1.0.1/default-publish.ps1 create mode 100644 eng/msbuild/web/Web/Powershell/1.0.1/filesystem.pubxml create mode 100644 eng/msbuild/web/Web/Powershell/1.0.1/package.pubxml create mode 100644 eng/msbuild/web/Web/Powershell/1.0.1/publish-module.psm1 create mode 100644 eng/msbuild/web/Web/Transform/Microsoft.Web.Publishing.AspNetCompileMerge.targets create mode 100644 eng/msbuild/web/WebApplications/Microsoft.WebApplication.Build.Tasks.Dll create mode 100644 eng/msbuild/web/WebApplications/Microsoft.WebApplication.targets diff --git a/eng/Tools.props b/eng/Tools.props index 73585747..e8bca617 100644 --- a/eng/Tools.props +++ b/eng/Tools.props @@ -1,7 +1,6 @@ - diff --git a/eng/msbuild/web/Web/CollectFiles/Microsoft.Web.Publishing.AllFilesInProjectFolder.targets b/eng/msbuild/web/Web/CollectFiles/Microsoft.Web.Publishing.AllFilesInProjectFolder.targets new file mode 100644 index 00000000..87f143a6 --- /dev/null +++ b/eng/msbuild/web/Web/CollectFiles/Microsoft.Web.Publishing.AllFilesInProjectFolder.targets @@ -0,0 +1,181 @@ + + + + + + + + + + + true + + + + + + + $(PublishPipelineCollectFilesCore); + CollectFilesFromProjectFolder; + + <_CollectFiles_IncludeIgnorableFile Condition="'$(_CollectFiles_IncludeIgnorableFile)'==''">False + + + False + True + + + + + + + + + + + + + + + + + + + + + + + <_KnownProjectItems Include="@(EmbeddedResource)" /> + <_KnownProjectItems Include="@(None)" /> + <_KnownProjectItems Include="@(Content)" /> + <_KnownProjectItems Include="@(Compile)" /> + + + + <_ProjectBaseIntermediateOutputPath Include="$(BaseIntermediateOutputPath)"/> + + + + + + + <_ExcludeRelativePathFromProjectFolder>^[^\\]*\.out$ + + + + + + + + + + + + + + + + $(OnBeforeCollectFilesFromProjectFolder_ExcludeSccFiles); + $(CollectFilesFromProjectFolder_ExcludeSccFilesDependsOn); + SetExcludeFromProjectFolder; + + + + + + <_ExcludeRelativePathFromProjectFolder>$(_ExcludeRelativePathFromProjectFolder);[^\\]*\.scc$;[^\\]*\.vssscc$;[^\\]*\.vspscc$ + + + + + + + + + + + + + $(OnBeforeCollectFilesFromProjectFolder); + $(CollectFilesFromProjectFolderDependsOn); + SetExcludeFromProjectFolder; + CollectFilesFromProjectFolder_ExcludeSccFiles; + + + + + + + + + + + + + + + + + + + + + %(_KnownProjectItems.Identity) + CollectFilesFromProjectFolder.KonwnProjectItems + AllFilesInProjectFolder + + + %(_KnownProjectItems.Link) + CollectFilesFromProjectFolder.KonwnProjectItems + AllFilesInProjectFolder + $(ExcludeLinkFilesInProject) + Link + + + + %(_AllFilesUnderProjectFolderExceptKnownProjectItems.Identity) + CollectFilesFromProjectFolder.ExceptKonwnProjectItems + AllFilesInProjectFolder + + + + + + + + + true + + + + + diff --git a/eng/msbuild/web/Web/CollectFiles/Microsoft.Web.Publishing.AllFilesInTheProject.targets b/eng/msbuild/web/Web/CollectFiles/Microsoft.Web.Publishing.AllFilesInTheProject.targets new file mode 100644 index 00000000..6456112b --- /dev/null +++ b/eng/msbuild/web/Web/CollectFiles/Microsoft.Web.Publishing.AllFilesInTheProject.targets @@ -0,0 +1,242 @@ + + + + + true + + + + + + + False + + + + + + + + $(PublishPipelineCollectFilesCore); + CollectFilesFromCompile; + CollectFilesFromEmbeddedResource; + CollectFilesFromNone; + CollectFilesFromBaseApplicationManifest; + CollectFilesFromProjectFile; + + + + + + + + + + + $(OnBeforeCollectFilesFromCompile); + $(CollectFilesFromCompileDependsOn); + + + + + + + + + + + + %(Compile.Identity) + CollectFilesFromCompile + ProjectNotRunRequired + + + %(Compile.Link) + CollectFilesFromCompile + ProjectNotRunRequired + $(ExcludeLinkFilesInProject) + Link + + + + + + + + + + + $(OnBeforeCollectFilesFromEmbeddedResource); + $(CollectFilesFromEmbeddedResourceDependsOn); + + + + + + + + + + + %(EmbeddedResource.Identity) + CollectFilesFromEmbeddedResource + ProjectNotRunRequired + + + %(EmbeddedResource.Link) + CollectFilesFromEmbeddedResource + ProjectNotRunRequired + $(ExcludeLinkFilesInProject) + Link + + + + + + + + + + + $(OnBeforeCollectFilesFromNone); + $(CollectFilesFromNoneDependsOn); + + + + + + + + + + %(None.Identity) + CollectFilesFromNone + ProjectNotRunRequired + + + %(None.Link) + CollectFilesFromNone + ProjectNotRunRequired + $(ExcludeLinkFilesInProject) + Link + + + + + + + + + + + + $(OnBeforeCollectFilesFromBaseApplicationManifest); + $(CollectFilesFromBaseApplicationManifestDependsOn); + + + + + + + + + + + + %(BaseApplicationManifest.Identity) + CollectFilesFromBaseApplicationManifest + ProjectNotRunRequired + + + %(BaseApplicationManifest.Link) + CollectFilesFromBaseApplicationManifest + ProjectNotRunRequired + $(ExcludeLinkFilesInProject) + Link + + + + + + + + + + + + $(OnBeforeCollectFilesFromProjectFile); + $(CollectFilesFromProjectFileDependsOn); + + + + + + + + + + + $(MSBuildProjectFile) + CollectFilesFromProjectFile + ProjectNotRunRequired + + + $(MSBuildProjectFile).user + CollectFilesFromProjectFile + ProjectNotRunRequired + + + + + + + + true + + + + diff --git a/eng/msbuild/web/Web/CollectFiles/Microsoft.Web.Publishing.OnlyFilesToRunTheApp.targets b/eng/msbuild/web/Web/CollectFiles/Microsoft.Web.Publishing.OnlyFilesToRunTheApp.targets new file mode 100644 index 00000000..84667d52 --- /dev/null +++ b/eng/msbuild/web/Web/CollectFiles/Microsoft.Web.Publishing.OnlyFilesToRunTheApp.targets @@ -0,0 +1,445 @@ + + + + + + + + + true + + + + + + $(PublishPipelineCollectFilesCore); + CollectFilesFromIntermediateAssembly; + CollectFilesFromContent; + CollectFilesFromAddModules; + CollectFilesFrom_SGenDllCreated; + CollectFilesFromIntermediateSatelliteAssembliesWithTargetPath; + CollectFilesFromReference; + CollectFilesFromAllExtraReferenceFiles; + CollectFilesFrom_SourceItemsToCopyToOutputDirectory; + CollectFilesFromDocFileItem; + CollectFilesFrom_WebApplicationSilverlightXapFiles; + CollectFilesFrom_binDeployableAssemblies; + + True + + + + + + + + + $(OnBeforeCollectFilesFromIntermediateAssembly); + $(CollectFilesFromIntermediateAssemblyDependsOn); + + + + + + + + + + + + bin\%(FileName)%(Extension) + CollectFilesFromIntermediateAssembly + Run + + + + + + bin\%(FileName).pdb + CollectFilesFromIntermediateAssembly + Debug + + + + + + + + + + + + $(OnBeforeCollectFilesFromContent); + $(CollectFilesFromContentDependsOn); + + + + + + + + + + %(Content.Identity) + CollectFilesFromContent + Run + + + %(Content.Link) + CollectFilesFromContent + Run + $(ExcludeLinkFilesInProject) + Link + + + + + + + + + + + + $(OnBeforeCollectFilesFromAddModulesDependsOn); + $(CollectFilesFromAddModulesDependsOn); + + + + + + + + + + bin\%(FileName)%(Extension) + CollectFilesFromAddModules + Run + + + + + + + + + + + $(OnBeforeCollectFilesFrom_SGenDllCreated); + $(CollectFilesFrom_SGenDllCreatedDependsOn); + + + + + + + + + + bin\$(_SGenDllName) + CollectFilesFrom_SGenDllCreated + Run + + + + + + + + + + + $(OnBeforeCollectFilesFromIntermediateSatelliteAssembliesWithTargetPath); + $(CollectFilesFromIntermediateSatelliteAssembliesWithTargetPathDependsOn); + + + + + + + + + bin\%(IntermediateSatelliteAssembliesWithTargetPath.TargetPath) + CollectFilesFromIntermediateSatelliteAssembliesWithTargetPath + Run + + + + + + + + + + + + $(OnBeforeCollectFilesFromReference); + $(CollectFilesFromReferenceDependsOn); + ResolveProjectReferences; + ResolveAssemblyReferences; + + + + + + + + + + bin\%(ReferenceCopyLocalPaths.DestinationSubDirectory)%(FileName)%(Extension) + CollectFilesFromReference + Run + + + + + + bin\%(FileName)%(Extension) + CollectFilesFromReference + Run + + + + + + + + + + + $(OnBeforeCollectFilesFromAllExtraReferenceFiles); + $(CollectFilesFromAllExtraReferenceFilesDependsOn); + + + + + + + + + + bin\%(FileName)%(Extension) + CollectFilesFromAllExtraReferenceFiles + Run + + + + + + + + + + + + + $(OnBeforeCollectFilesFrom_SourceItemsToCopyToOutputDirectory); + $(CollectFilesFrom_SourceItemsToCopyToOutputDirectoryDependsOn); + + + + + + + + + <_TempSourceItemsToCopyToOutputDirectory Include="@(_SourceItemsToCopyToOutputDirectoryAlways); @(_SourceItemsToCopyToOutputDirectory)" /> + + + + + + bin\%(_TempSourceItemsToCopyToOutputDirectory.TargetPath) + CollectFilesFrom_SourceItemsToCopyToOutputDirectory + Run + + + + + + + + + + + + $(OnBeforeCollectFilesFromDocFileItem); + $(CollectFilesFromDocFileItemDependsOn); + + + + + + + + + + bin\%(FileName)%(Extension) + CollectFilesFromDocFileItem + Run + + + + + + + + + + + $(OnBeforeCollectFilesFrom_WebApplicationSilverlightXapFiles); + $(CollectFilesFrom_WebApplicationSilverlightXapFilesDependsOn); + + + + + + + + + + + + + + %(_WebApplicationSilverlightXapFiles.Identity) + CollectFilesFrom_WebApplicationSilverlightXapFiles + Run + + + + + + + + + + + $(OnBeforeCollectFilesFrom_binDeployableAssemblies); + $(CollectFilesFrom_binDeployableAssembliesDependsOn); + _CopyBinDeployableAssemblies; + + + + + + + + + + + + + + bin\%(RecursiveDir)%(FileName)%(Extension) + CollectFilesFrom_binDeployableAssemblies_NoDestinationRelPath + Run + + + + bin\%(_binDeployableAssemblies_None.DestinationRelPath)%(FileName)%(Extension) + CollectFilesFrom_binDeployableAssemblies_WithDestinationRelPath + Run + + + + + + + + true + + + + diff --git a/eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.Deploy.FPSE.targets b/eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.Deploy.FPSE.targets new file mode 100644 index 00000000..2093b505 --- /dev/null +++ b/eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.Deploy.FPSE.targets @@ -0,0 +1,59 @@ + + + + + + + + + <_WPPWebPublishMethodSupports>$(_WPPWebPublishMethodSupports);WebFPSEPublish + + + + + + + + + $(OnBeforeWebFPSEPublish); + $(WebFPSEPublishDependsOn); + + + + + + + + + + + + + + + + + true + + + + diff --git a/eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.Deploy.FTP.targets b/eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.Deploy.FTP.targets new file mode 100644 index 00000000..9fc08695 --- /dev/null +++ b/eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.Deploy.FTP.targets @@ -0,0 +1,60 @@ + + + + + + + + + <_WPPWebPublishMethodSupports>$(_WPPWebPublishMethodSupports);WebFTPPublish + + + + + + + + + + $(OnBeforeWebFTPPublish); + $(WebFTPPublishDependsOn); + + + + + + + + + + + + + + + + true + + + + + diff --git a/eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.Deploy.FileSystem.targets b/eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.Deploy.FileSystem.targets new file mode 100644 index 00000000..337c54ab --- /dev/null +++ b/eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.Deploy.FileSystem.targets @@ -0,0 +1,116 @@ + + + + + + + + + + <_WPPWebPublishMethodSupports>$(_WPPWebPublishMethodSupports);WebFileSystemPublish + + + + + + + + + + $(OnBeforeWebFileSystemPublish); + $(WebFileSystemPublishDependsOn); + + + $(WebFileSystemPublishDependsOn); + PipelinePreDeployCopyAllFilesToOneFolder; + + + + + + + <_DoWebFileSystemPublishDeleteExtraFiles>False + <_DoWebFileSystemPublishDeleteExtraFiles Condition= "'$(DeleteExistingFiles)' == 'True'" >True + <_HttpHeader>http:// + <_DoWebFileSystemPublish>False + <_DoWebFileSystemPublish Condition="'$(PublishUrl)'!='' And '$(PublishUrl.StartsWith($(_HttpHeader), StringComparison.OrdinalIgnoreCase))' == 'False' And '$([System.IO.Path]::GetFullPath($(PublishUrl)))' != ''">True + + + + + + + + + + + + + + + + + + %(_AllFilesUnder_WPPAllFilesInSingleFolder.Identity) + WebFileSystemPublish + AllFilesInFolder + + + + + + + <_AllExtraFilesUnderPublishUrl Include="$(PublishUrl)\**" /> + <_AllExtraFilesUnderPublishUrl + Remove="@(FilesForFileCopy->'$(PublishUrl)\%(DestinationRelativePath)')" /> + + + + + + + + + + + + + + + + + + true + + + + diff --git a/eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.Deploy.MsDeploy.targets b/eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.Deploy.MsDeploy.targets new file mode 100644 index 00000000..d3a85726 --- /dev/null +++ b/eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.Deploy.MsDeploy.targets @@ -0,0 +1,49 @@ + + + + + + + + true + + + + + + + + Microsoft.Web.Publishing.MSDeploy.Common.targets + + + + + True + + $(PipelineDeployPhaseDependsOn); + PipelineMsdeploySpecificTransformPhase; + + + + + + + + true + + + + diff --git a/eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.Deploy.Package.targets b/eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.Deploy.Package.targets new file mode 100644 index 00000000..17f7652c --- /dev/null +++ b/eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.Deploy.Package.targets @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + true + + + + + Microsoft.Web.Publishing.MSDeploy.Common.targets + + + + + True + + $(PipelineDeployPhaseDependsOn); + PipelineMsdeploySpecificTransformPhase; + + + + + + + + + + true + + + + diff --git a/eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.MsDeploy.Common.targets b/eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.MsDeploy.Common.targets new file mode 100644 index 00000000..f958c498 --- /dev/null +++ b/eng/msbuild/web/Web/Deploy/Microsoft.Web.Publishing.MsDeploy.Common.targets @@ -0,0 +1,1192 @@ + + + + + + + + + + + + + + true + + + + + + True + + + + True + InsertEFCodeFirstDeploy + $(_WPPDefaultIntermediateOutputPath)$(InsertEFCodeFirstDeployWebCofigIntermediateOutput) + + + + + + + True + + GetMSDeployInstalledVersionPath; + + + + + + + + + + + + + + + + + + + + + + + + + + + True + + $(ParseSQLScriptForMSDeployParametersDependsOn); + GetMSDeployInstalledVersionPath; + ProcessPublishDatabaseSettings; + + + + + <_DatabasesToPackageForSQL Include="@(_DatabasesToPackage)" + Condition="$(EnableSqlScriptVariableParameterize) + And '%(_DatabasesToPackage.SourceProvider)' == 'DbFullSql' + And '%(_DatabasesToPackage.SourcePath)' != '' + And Exists('%(_DatabasesToPackage.SourcePath)') + And '$([System.IO.Path]::GetExtension($([System.String]::new(%(_DatabasesToPackage.SourcePath)))))' == '.sql'"> + + + + + + + + + + + + + + + + + + + + + + True + + $(HandleEFCodeFirstDataMigrationDependsOn); + GetMSDeployInstalledVersionPath; + ProcessPublishDatabaseSettings; + + + + + + <_DatabasesToPackageForEFCodeFirst Include="@(_DatabasesToPackage)" + Condition="'%(_DatabasesToPackage.SourceProvider)' == 'DbCodeFirst' + And '%(_DatabasesToPackage.SourcePath)' == 'DBMigration'"> + + + + + + + + + + + + HandleEFCodeFirstDataMigration; + ProfileTransformWebConfig; + + + $(PreInsertEFCodeFirstDeployWebCofigBeforeTarget); + AutoParameterizationWebConfigConnectionStrings; + PreAutoParameterizationWebConfigConnectionStrings; + + + + + + <_WebConfigsToInsertEFCodeFirstDeployContext Include="@(FilesForPackagingFromProject)" + Condition="'%(FilesForPackagingFromProject.Filename)%(FilesForPackagingFromProject.Extension)'=='$(ProjectConfigFileName)' + And !%(FilesForPackagingFromProject.Exclude) + And '%(DestinationRelativePath)' == '$(ProjectConfigFileName)'"> + $(InsertEFCodeFirstDeployWebCofigLocation)\original + $(InsertEFCodeFirstDeployWebCofigLocation)\transformed\%(DestinationRelativePath) + $([System.IO.Path]::GetFullPath($(WPPAllFilesInSingleFolder)\%(DestinationRelativePath))) + + <_WebConfigsToInsertEFCodeFirstDeployContextOuputFiles Include="@(_WebConfigsToInsertEFCodeFirstDeployContext->'%(TransformOutputFile)')"> + + + + + <_WebConfigsToInsertEFCodeFirstDeployContextOuputDirectories>@(_WebConfigsToInsertEFCodeFirstDeployContextOuputFiles->'%(RootDir)%(Directory)') + <_WebConfigsToInsertEFCodeFirstDeployContextOuput>@(_WebConfigsToInsertEFCodeFirstDeployContext->'%(TransformOutputFile)'); + + + + <_WebConfigsToInsertEFCodeFirstDeployContextOuputDirectories Include="$(_WebConfigsToInsertEFCodeFirstDeployContextOuputDirectories)" /> + + + + + + + + + + + + + + + + + + + + + + + $(_PublishLocalizedString_EFCodeFirstConnectionStringParameterDescription) + + + + + + + + + + + %(_DatabasesToPackageForEFCodeFirst.DestinationPath) + %(_DatabasesToPackageForEFCodeFirst.DestinationGroup) $(_EscapedDeployParameterEFCodeFirstConnectionStringDescription) + True + False + + + + + <_InsertEFCodeFirstDeployContextNames Include="@(_DatabasesToPackageForEFCodeFirst)"> + + <add + name="%(_DatabasesToPackageForEFCodeFirst.DestinationGroup)_DatabasePublish" + connectionString="%(_DatabasesToPackageForEFCodeFirst.DestinationGroup)_DatabasePublish.ConnetionString" + providerName="$(InsertAdditionalWebConfigConnectionStringProviderName)" + xdt:Transform="InsertIfMissing" + xdt:Locator="Match(name)" + xdt:SupressWarnings="True" + /> + + + <context type="%(_DatabasesToPackageForEFCodeFirst.SourceDbContext)" + xdt:Transform="InsertIfMissing" + xdt:Locator="Match(type)" + xdt:SupressWarnings="true" + > + <databaseInitializer type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[[%(_DatabasesToPackageForEFCodeFirst.SourceDbContext)], [%(_DatabasesToPackageForEFCodeFirst.SourceMigrationConfiguration)]], EntityFramework, PublicKeyToken=b77a5c561934e089"> + <parameters> + <parameter value="%(_DatabasesToPackageForEFCodeFirst.DestinationGroup)_DatabasePublish" /> + </parameters> + </databaseInitializer> + </context> + + + + + + + + <_WebConfigsToInsertEFCodeFirstDeployContext_Transform><?xml version="1.0"?> + <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> + <connectionStrings xdt:Transform="InsertIfMissing" xdt:SupressWarnings="True"> + @(_InsertEFCodeFirstDeployContextNames->'%(TransformXMLFragement_CSInsert)', '') + </connectionStrings> + <entityFramework xdt:Transform="InsertIfMissing" xdt:SupressWarnings="true"> + <contexts xdt:Transform="InsertIfMissing" xdt:SupressWarnings="true"> + @(_InsertEFCodeFirstDeployContextNames->'%(TransformXMLFragement_Deploy)', '') + </contexts> + </entityFramework> + </configuration> + + + + + + + + + + + + + + HandleEFCodeFirstDataMigration; + ProfileTransformWebConfig; + PreInsertEFCodeFirstDeployWebCofig; + + + + + + + + + + + + <_WebConfigToInsertEFCodeFirstDeployContext_Identity>%(_WebConfigsToInsertEFCodeFirstDeployContext.Identity) + <_WebConfigToInsertEFCodeFirstDeployContext_TransformOutputFile>%(_WebConfigsToInsertEFCodeFirstDeployContext.TransformOutputFile) + <_WebConfigsToInsertEFCodeFirstDeployContext_TransformScope>%(_WebConfigsToInsertEFCodeFirstDeployContext.TransformScope) + + + + + + + + + + + + + + + HandleEFCodeFirstDataMigration; + ProfileTransformWebConfig; + PreInsertEFCodeFirstDeployWebCofig; + InsertEFCodeFirstDeployWebCofigCore; + + + + + + + + + + + + + + + + + + + + + + + + + + + $(OnBeforeInsertEFCodeFirstDeployWebCofig); + $(InsertEFCodeFirstDeployWebCofigDependsOn); + TransformWebConfig; + HandleEFCodeFirstDataMigration; + ProfileTransformWebConfig; + PreInsertEFCodeFirstDeployWebCofig; + InsertEFCodeFirstDeployWebCofigCore; + PostInsertEFCodeFirstDeployWebCofig; + + + $(InsertEFCodeFirstDeployWebCofigBeforeTargets); + PreAutoParameterizationWebConfigConnectionStrings; + AutoParameterizationWebConfigConnectionStrings; + PipelineMsdeploySpecificTransformPhase; + + + + + + + + + <_DbDacFxDestinationPathesToPublish Include="@(_DatabasesToPackage->'%(DestinationPath)')" Condition="'%(_DatabasesToPackage.SourceProvider)' == 'dbDacFx'" /> + + + + + + + + + + + + + + + True + + $(CollectDatabasesToPublishDependsOn); + GetMSDeployInstalledVersionPath; + ProcessPublishDatabaseSettings; + _CheckDBProvidersAreAvailableAtServer; + ParseSQLScriptForMSDeployParameters; + HandleEFCodeFirstDataMigration; + InsertEFCodeFirstDeployWebCofig; + + + + + + + + + + + + + + + $(BeforeAddDeclareParametersItemsForDatabaseScript); + CollectDatabasesToPublish; + + + + + + + + + + + + + + + + + + + + <_VsPublish_DatabaseToPackage_DeclareParameters Include="@(_DatabasesToPackage->'$(DeployParameterPrefix)%(DestinationGroup)-Deployment Connection String')" + Condition="'%(_DatabasesToPackage.Identity)' !='' And '%(_DatabasesToPackage.SourceProvider)' != 'DbCodeFirst' "> + ProviderPath + %(_DatabasesToPackage.SourceProvider) + ^%(_DatabasesToPackage.SourcePath_RegExExcaped)$ + $(DeployParameterIISAppConnectionStringDescription) + %(_DatabasesToPackage.DestinationPath) + %(_DatabasesToPackage.DestinationPath) + $(MsDeployDatabaseTag) + + + + <_VsPublish_DatabaseToPackage_DeclareParameters Include="@(_DatabasesToPackage_SqlVariables->'$(DeployParameterPrefix)Sql script variable %24(%(Identity)) in %(DestinationGroup) scripts')" + Condition="$(EnableSqlScriptVariableParameterize) And '%(_DatabasesToPackage_SqlVariables.Identity)' !=''"> + $(MsDeploySqlCommandVariableKind) + ^%(_DatabasesToPackage_SqlVariables.SourcePath_RegExExcaped)$ + %(_DatabasesToPackage_SqlVariables.Identity) + $(DeployParameterSqlScriptVariablesDescription) + %(_DatabasesToPackage_SqlVariables.Value) + %(_DatabasesToPackage_SqlVariables.Value) + sql + + + + <_VsPublish_DatabaseToPackage_DeclareParameters Include="@(_DatabasesToPackage_SqlVariables->'$(DeployParameterPrefix)Sql script variable %24(%(Identity)) in %(DestinationGroup) scripts')" + Condition="$(EnableSqlScriptVariableParameterize) and '%(_DatabasesToPackage_SqlVariables.Identity)' !='' and ('%(_DatabasesToPackage_SqlVariables.Value)' == '') and ('%(_DatabasesToPackage_SqlVariables.IsDeclared)' == 'true') "> + parameterValidation + AllowEmpty + + + + $(VsSQLDatabaseScriptParametersPriority) + + + + + + + + + + + + + $(WriteItemsToSourceManifestDependsOn); + AddDatabasesToSourceManifest; + + + + + + + + + $(BeforeAddDatabasesToSourceManifest); + CollectDatabasesToPublish; + + + $(AddDatabasesToSourceManifestAfterTargets); + AddIisSettingAndFileContentsToSourceManifest; + + + + + + + + + + + + + + + + + + + + GetMSDeployInstalledVersionPath; + GenerateMsDeployManifestSettings; + GenerateMsdeployManifestFiles; + + + $(GenerateSampleDeployScriptAfterTargets); + PackageUsingManifest; + + + + + + + + + + + + + manifest + @(_MSDeploySourceManifest->'%(FileName)%(Extension)') + package + @(_MSDeployPackageFile->'%(FileName)%(Extension)') + archiveDir + @(_MSDeployArchiveDir->'%(FileName)%(Extension)') + %25RootPath%25$(GenerateSampleDeployScriptSourceFileName) + %25_Destination%25 + + @(_MSDeploySampleParametersValue->'%25RootPath%25%(FileName)%(Extension)') + <_ScriptGenerateSampleDeployScriptReadMeLocation>%25RootPath%25$(GenerateSampleDeployScriptReadMeFileName) + <_MSdeployFwdLink>http://go.microsoft.com/?linkid=9278654 + <_SampleDeployCmdFwdLink>http://go.microsoft.com/fwlink/?LinkID=183544 + + + + <_MsDeployDeclareParametersNotExclude Include="@(MsDeployDeclareParameters)" Condition="'%(ExcludeFromSetParameter)' != true and '%(MsDeployDeclareParameters.Identity)' !=''" /> + + + + + + + + + + + + + + $(GenerateSampleDeployScriptSourceRoot) + $(DeployEncryptKey) + + + + $(GenerateSampleDeployScriptDestinationRoot) + $(DeployEncryptKey) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + + diff --git a/eng/msbuild/web/Web/Microsoft.DNX.Publishing.targets b/eng/msbuild/web/Web/Microsoft.DNX.Publishing.targets new file mode 100644 index 00000000..0aa067bd --- /dev/null +++ b/eng/msbuild/web/Web/Microsoft.DNX.Publishing.targets @@ -0,0 +1,459 @@ + + + + + + + true + + + + + + + + $(MSBuildThisFileDirectory) + $(MSBuildThisFileDirectory)..\DNX\ + + + + + + + + + + + + $(MSBuildProjectDirectory)\Properties\PublishProfiles\ + $([System.IO.Path]::GetFileNameWithoutExtension($(PublishProfile))) + $(PublishProfileRootFolder)$(PublishProfileName).pubxml + + + + + + + $([System.IO.Path]::GetTempPath())PublishTemp + $(PublishOutputPathNoTrailingSlash)\ + + + + + + + + + + + + + + + + + + + + $(GatherAllFilesToPublishDependsOn); + GetRuntimeToolingPathTarget + + + + + + + + $(MSBuildProjectDirectory) + + + wwwroot + + $(WebRoot) + + + true + true + $(LastUsedBuildConfiguration) + + + $(Configuration) + Release + + + + + + + + + + + + + + + + + + + + + + + $(FileSystemPublishDependsOn); + GatherAllFilesToPublish; + + + + + + + + + + + + + $(DockerPublishDependsOn); + GatherAllFilesToPublish; + + + + + + + + + + + + $(MSDeployPublishDependsOn); + GatherAllFilesToPublish; + GenerateSkipRuleForAppData + + + + + + + + + + + + + + + + + + + + + + + $(PublishOutputPath)$(WebRoot) + + + $(DeployIisAppPath) + $(MsDeployServiceUrl) + $(UserName) + $(Password) + False + Basic + + + + + contentLibExtension + 2 + DoNotDeleteRule + <_EnableRuleList>$(MsDeployDoNotDeleteRule) + + false + false + + + <_MSDeployUserAgentSource Condition=" '$(BuildingInsideVisualStudio)' != 'true'">$(VisualStudioVersion):CmdLine + <_MSDeployUserAgentSource Condition=" '$(BuildingInsideVisualStudio)' == 'true'">$(VisualStudioVersion):PublishDialog + <_MSDeployUserAgent>VS$(_MSDeployUserAgentSource) + + + + + + + + + + + + $(PackagePublishDependsOn); + FileSystemPublish + + + + + + + $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\Web\Powershell\1.0.1\default-publish.ps1)) + $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\Web\Powershell\1.0.1\package.pubxml)) + + + + + + + + + + $(DefaultPublishDependsOn); + FileSystemPublish + + + + + + + $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\Web\Powershell\1.0.1\default-publish.ps1)) + $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\Web\Powershell\1.0.1\FileSystem.pubxml)) + + + + + + + + + + + + + + + + + + $([System.String]::Copy('$(WebPublishProfileFile)').Replace('.pubxml','-publish.ps1')) + + $([System.IO.File]::ReadAllText($(PowerShellScriptFile))) + + + + + + + + + $(%(_PublishProperties.Identity)) + + + + + + + + + + + + + + + + + dirPath + $(_Escaped_PublishOutputPath)\\App_Data$ + Source + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + + \ No newline at end of file diff --git a/eng/msbuild/web/Web/Microsoft.Web.Publishing.Tasks.dll b/eng/msbuild/web/Web/Microsoft.Web.Publishing.Tasks.dll new file mode 100644 index 0000000000000000000000000000000000000000..af77f24b16ed4cd8f03b2c79d16473d4e8908fc1 GIT binary patch literal 353984 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%0AmOerNysj~y!%NQcDxmXxfc1YZv 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

Z80jVx)f$QMT1X9t@SRzdfgwf@ zVQ$G|`no=4!-KAE`lf0rFOP^-?zHjT_DM!cpNm?gu0yp$@iZ3p`0#5@pR3 z6W;+8YpmXflwl;f@ZGUJp4;WK0{Hwc4&2AC+0XFr-VUB`+I%v=uJ^Dvey*o(H=jVV zNNIMKi(I-T0jvkcNu5qTBxFQ$ShyFg;pKSV=kNy@*vR{B6CCkI+62MrY%JqQR)}b>QmO(}i=`=M znsGgwiW|IKL6dEu+&vK$PjigD!lyBDme8Od5EPq5sF~l|041zn>Q zbZD~yLLu>>;OFuy=O4)}Tz(QJ60kq?goi4@)J`7Z!Es(nr(cad;&xdSVA6ltQ%QvfU~(eIG#HW zhn0be#!}PpAgXJqA{Wxc`AY~%-76?^)q*6P0_aP>XkajkP`s4E88T3(3gRd*6JSP` zi4a*5MR2;!Dy9^6Tg4=q)}(GMRcl6)Eb`eG(^hM5hEE=0FlMvXHv*1hFCw|U{byNT ze62pMET$~TXxWj9nG5GJ1{@#R(TAkiy9CF!sTbzVX10sd;7QU``0;AxzFQXMT`-@5 z6-1w@q!1d10X_kehH8LptHKf&y)l^n&q$_Gk&DkqIh(?lOid|7aH23#02X?T@HoQ5 zRTaVo)y|9?N6oyBlQ68%A`ovURY2WBFgVIL@J(k{X{XQn>7D%^Kv3~SZGjCUo9I*T5omFLVS`Vz83^ve z*b=4?xLL$xFK4&~#!-r#c|j>f55Dc&MoE-*fWC%iMXwwLi3@fa%a~Fh5OzGq@byBx zt2Ln*elTfEu();h!W|{#k;Qz`1hZvVp5ZA?X(6b2Y(1ppkOV!bm{Vw9xZoGyByv)( z^9Mx|j-9~xlxh~`c7ZDMHJXtl*^5>mn&(u+h&STGW7)ei2;J6PZh_GRHhJ3Kh6iSQ z;#YFgV(8@8^!y{!nc%B6md3R|FO3Vcwh%Fpn3((yC02^%9V2E~3QdA|m!IHyHjJJX z36^kpr(aGLp<4o>x)Nm2+T-y>EG7IsMs<$m*)`z+J_InNegsqS`xtwoJWzVzgFHV7 z0z%lPBgm(+Ov4|yJB%k}rS9tUs6LYvfWgYg*68CzTd7D+-PMvJ!nf}th})QAF4Y<6 zG;j2+-{pgDGswFl`aNKIwMpJ4YYp7XH43Yb5a720gR=7xM2Awczl_R#hq~#<6l@2u z6n93*AAyahg=nvk*0VdIF+UMWoUPGx2JB=|(tXRM&pAo5H>fGHuKFP8+}8mB+ESe` zLb3Wdcz((Wj!EuM+K=06!bd5+5)A3*wWt-jLMps&86I{=zeNFWtlBtGGEUZm|Dcrr zj28BA$4Pkf%(E<04mNl`u01fh4-X=^e_Kud00s3DJ2BQ8=>-ha;~Wh z4{xmNr-yaX#i-=#;rT5bw~z2Ibk~t~1`Cx6kd1vkJT{F)?9o+{ZfQ|5qq2`P{7Dy|&G|WHffGmm4R5)tOHt%Be zrCY4q9BO_P)PdqaLm@ay0&w{jj^7~nBy+~=-x@4-t|Emf6~xjKp9@4|;>ts(Juz

@Jd75x2I%R*Q#548*I?wN24`OhRC>cb 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 literal 0 HcmV?d00001 diff --git a/eng/msbuild/web/Web/Microsoft.Web.Publishing.targets b/eng/msbuild/web/Web/Microsoft.Web.Publishing.targets new file mode 100644 index 00000000..1e2935b6 --- /dev/null +++ b/eng/msbuild/web/Web/Microsoft.Web.Publishing.targets @@ -0,0 +1,4802 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + + + + + + <_WPPVersion>2.0 + <_WPPSupports>IISExpress;AspNetCompileMerge + <_WPPWebPublishMethodSupports>WebMSDeployPublish;WebPackagePublish + + + + <_WPPSupports Include="$(_WPPSupports)" /> + + + + + + <_IISApplicationPool Include="Clr4IntegratedAppPool"> + ASP.NET v4.0 + + <_IISApplicationPool Include="Clr4ClassicAppPool"> + ASP.NET v4.0 Classic + + <_IISApplicationPool Include="Clr2IntegratedAppPool"> + DefaultAppPool + + <_IISApplicationPool Include="Clr2ClassicAppPool"> + Classic .NET AppPool + + + + + + + + + + obj\ + $(BaseIntermediateOutputPath)\ + + + + $(BaseIntermediateOutputPath)$(Configuration)\ + $(BaseIntermediateOutputPath)$(PlatformName)\$(Configuration)\ + $(IntermediateOutputPath)\ + + + + + + + $(MSBuildProjectDirectory) + $(WebPublishPipelineProjectDirectory) + + $(MSBuildProjectName) + $(MSBuildProjectFile) + $([System.IO.Path]::GetFullPath($([System.IO.Path]::Combine($(WebPublishPipelineProjectDirectory), $(WebPublishPipelineProjectFile))))) + False + $(WebPublishPipeLineProjectFullPath) + <_WPPDefaultIntermediateOutputPathPathRoot Condition="'$(WebPublishPipelineProjectDirectory)' != '$(MSBuildProjectDirectory)'">$(MSBuildProjectDirectory)\ + False + True + <_LocalDBVersionToUseForSqlExpress Condition="'$(_LocalDBVersionToUseForSqlExpress)' == ''">11.0 + <_PublishProfileSet>False + True + + + <_WPPDefaultIntermediateOutputPath>$(IntermediateOutputPath) + <_WPPDefaultIntermediateOutputPath Condition="'$([System.IO.Path]::IsPathRooted($(IntermediateOutputPath)))' == 'False'">$(_WPPDefaultIntermediateOutputPathPathRoot)$(IntermediateOutputPath) + <_WPPDefaultIntermediateOutputFullPath>$([System.IO.Path]::GetFullPath($(_WPPDefaultIntermediateOutputPath))) + + + + + <_PublishProfileExtension>$([System.IO.Path]::GetExtension($(PublishProfile))) + <_PublishProfileDirectory>$([System.IO.Path]::GetDirectoryName($(PublishProfile))) + <_PublishProfileName>$([System.IO.Path]::GetFileNameWithoutExtension($(PublishProfile))) + <_PublishProfileSet>True + WebPublish + + + + $(WebPublishPipelineProjectDirectory)\$(AppDesignerFolder)\PublishProfiles + $(WebPublishPipelineProjectDirectory)\My Project\PublishProfiles + $(WebPublishPipelineProjectDirectory)\Properties\PublishProfiles + $(WebPublishPipelineProjectDirectory)\__profiles + + + + $(_PublishProfileName) + + + + $(PublishProfileRootFolder)\$(PublishProfileName).pubxml + $(WebPublishPipelineProjectDirectory)\App_Data\PublishProfiles\$(PublishProfileName).pubxml + + + + $(PublishProfile) + $(WebPublishPipelineProjectDirectory)\$(PublishProfile) + $(PublishProfileRootFolder)\$(PublishProfile) + + + + $([System.IO.Path]::GetFileNameWithoutExtension($(WebPublishProfileFile))) + <_PublishProfileName>$(PublishProfileName) + + + + <_WebPublishProfileFileWillBeImported>false + <_WebPublishProfileFileWillBeImported Condition="'$(EnableWebPublishProfileFile)'=='true' And '$(WebPublishProfileFile)' != '' And Exists($(WebPublishProfileFile))">true + + + + + + $([System.IO.Path]::ChangeExtension($(WebPublishProfileFile), '.wpp.targets')) + $([System.IO.Path]::ChangeExtension($(WebPublishProfileFile), '.parameters.xml')) + + + + + + + + + + $(WebPublishPipelineProjectDirectory)\*.wpp.targets + $(WebPublishPipelineProjectDirectory)\..\wpp.deploysettings.targets + + + + + + + + + <_WPPCleanTargets> + $(_WPPCleanTargets); + CleanWebsitesPackage; + CleanWebsitesWPPAllFilesInSingleFolder; + CleanWebPublishPipelineIntermediateOutput; + + + $(CleanDependsOn); + $(_WPPCleanTargets); + + + + + + OnlyFilesToRunTheApp + + + + + AllFilesInProjectFolder + $(WebPublishPipelineProjectDirectory) + $(AlternativeProjectDirectory) + + + + + True + + True + False + + + true + + False + $(ExcludeApp_Data) + False + + + True + False + + + <_CleanWPPIfNeedTo Condition="'$(_CleanWPPIfNeedTo)' == '' And '$(CleanWPPAllFilesInSingleFolder)'!=''">$(CleanWPPAllFilesInSingleFolder) + False + + False + + True + + True + False + True + True + True + True + True + False + + False + + True + False + CSAutoParameterize + $(_WPPDefaultIntermediateOutputPath)$(AutoParameterizationWebConfigConnectionStringsIntermediateOutput) + + <_WPPLastBuildInfoIntermediateOutput Condition="'$(_WPPLastBuildInfoIntermediateOutput)'==''">_WPPLastBuildInfo.txt + <_WPPLastBuildInfoLocation Condition="'$(_WPPLastBuildInfoLocation)'==''">$(_WPPDefaultIntermediateOutputPath)$(_WPPLastBuildInfoIntermediateOutput) + + True + InsertAdditionalCS + $(_WPPDefaultIntermediateOutputPath)$(InsertAdditionalWebCofigConnectionStringsIntermediateOutput) + System.Data.SqlClient + True + + + + + + + Database + $(_WPPDefaultIntermediateOutputPath)$(DatabaseDeployIntermediateRelativePath) + <_WebConfigsToAutoParmeterizeCsTransformOutputParametersFile>$(AutoParameterizationWebConfigConnectionStringsLocation).parameters.xml + + + Package + $(DeployDefaultTarget) + 2 + False + $(DeployOnBuildDefault) + false + false + false + + + False + + + + + + <_MSDeployUserAgentSource Condition=" '$(BuildingInsideVisualStudio)' != 'true'">$(VisualStudioVersion):CmdLine + <_MSDeployUserAgentSource Condition=" '$(BuildingInsideVisualStudio)' == 'true'">$(VisualStudioVersion):PublishDialog + <_MSDeployUserAgent>VS$(_MSDeployUserAgentSource) + + + + + False + + + + + True + False + + <_DeployOnBuild>$(DeployOnBuild) + + <_DeployOnBuild Condition="'$(BuildingInsideVisualStudio)' == 'true'">False + + + + PrepareForRun; + + + + False + True + False + + + + $(PipelineDependsOn); + BeforeBuild; + BuildOnlySettings; + ResolveReferences; + PrepareResourceNames; + ComputeIntermediateSatelliteAssemblies; + GetCopyToOutputDirectoryItems; + _SGenCheckForOutputs; + + + + $(PipelineDependsOn); + Build; + + + + $(PipelineDependsOn); + AfterBuild; + + + + + + + + Web.config + <_ProjectConfigFileExtension>$([System.IO.Path]::GetExtension($(ProjectConfigFileName))) + <_ProjectConfigFilePrefix>$([System.IO.Path]::GetFileNameWithoutExtension($(ProjectConfigFileName))) + + + $(_ProjectConfigFilePrefix).$(Configuration)$(_ProjectConfigFileExtension) + true + False + False + TransformWebConfig + $(_WPPDefaultIntermediateOutputPath)$(TransformWebConfigIntermediateOutput) + <_WebConfigTransformOutputParametersFile>$(TransformWebConfigIntermediateLocation).parameters.xml + + $(_ProjectConfigFilePrefix).$(PublishProfileName)$(_ProjectConfigFileExtension) + + + False + False + true + False + False + ProfileTransformWebConfig + $(_WPPDefaultIntermediateOutputPath)$(ProfileTransformWebConfigIntermediateOutput) + <_ProfileWebConfigTransformOutputParametersFile>$(ProfileTransformWebConfigIntermediateLocation).parameters.xml + + True + + + + + + + + True + False + $(WebProjectOutputDirInsideProjectDefault) + True + False + + + + + + + + $(OutDir)_PublishedWebsites\$(WebPublishPipelineProjectName)_Package + $(_WPPDefaultIntermediateOutputPath)Package + $(WebPublishPipelineProjectName).zip + Default Web Site + _deploy + $(WebPublishPipelineProjectName) + $(DefaultMSDeployDestinationSite)/$(DefaultMSDeployDestinationApplicationName)$(DefaultMsDeployAltSuffix) + $(DefaultMSDeployDestinationApplicationName)$(DefaultMsDeployAltSuffix) + + + + + + + True + + $(DesktopBuildPackageLocation) + $(PackageLocation) + $(PackageFileName)\$(DefaultPackageFileName) + $(DefaultPackageOutputDir)\$(DefaultPackageFileName) + $(PackageLocation) + $(DefaultPackageOutputDir) + $(_WPPDefaultIntermediateOutputPath)Package + + true + True + True + False + $(TargetFrameworkVersion) + + + + + True + $(DefaultPackageOutputDir)\Log + False + + Info + <_CreatePackage Condition="'$(_CreatePackage)'==''" >True + <_UseDefaultLinkExtensionValue>False + <_UseDefaultLinkExtensionValue Condition="'$(PackageEnableLinks)'=='' and '$(PackageDisableLinks)'==''">True + + AppPoolExtension;ContentExtension;CertificateExtension + AppPoolExtension + ContentExtension;CertificateExtension + $(MSBuildProjectDirectory)\Parameters.xml + $(WebPublishPipelineProjectDirectory)\Parameters.xml + False + $(WebPublishPipelineProjectName) + $(DeployParameterPrefix)IIS Web Application Name + $(DeployParameterPrefix)IIS Web Application Pool Name + $(DeployParameterPrefix)Add write permission to App_Data Folder + $(DeployParameterPrefix)Web Application Physical Path + + True + + + + + + + SqlConnectionString + SqlCommandVariable + + + :Connect;:!!;:Exit;:Help;:r;:Quit; + True + + + MultipleActiveResultSets;App; + + + False + <_PackageTempDir Condition ="'$(_PackageTempDir)' == '' ">$(PackageTempRootDir)\PackageTmp + $(_PackageTempDir) + False + + + + True + + + False + + + + + + + + + + + + + + + + $(WebPublishPipelineProjectDirectory)$(DefaultMsDeployAltSuffix) + + <_DestinationIisAppPhysicalPath>$(DeployIisAppPhysicalPath) + <_DestinationIisAppPhysicalPath Condition="'$(_DestinationIisAppPhysicalPath)'==''">$(DefaultDeployIisAppPhysicalPath) + + + + $(PackageEnableLinks) + $(PackageDisableLinks) + + False + + + + + + -100 + -80 + -70 + -60 + -55 + -50 + -40 + 60 + 100 + + + + + + + <_MSDeployPackageFile Include="$(PackageFileName)" /> + <_MSDeployArchiveDir Include="$(PackageArchiveRootDir)\Archive" /> + <_MSDeployPackageLocation Condition="$(PackageAsSingleFile)" Include="$(PackageFileName)" /> + <_MSDeployPackageLocation Condition="!$(PackageAsSingleFile)" Include="@(_MSDeployArchiveDir)" /> + + + + @(_MSDeployPackageLocation->'%(RootDir)%(Directory)%(FileName).deploy.cmd') + + @(_MSDeployPackageLocation->'%(RootDir)%(Directory)%(FileName).SourceManifest.xml') + $(UseMsdeployExe) + @(_MSDeployPackageLocation->'%(RootDir)%(Directory)%(FileName).Package.Parameters.xml') + @(_MSDeployPackageLocation->'%(RootDir)%(Directory)%(FileName).Publish.Parameters.xml') + @(_MSDeployPackageLocation->'%(RootDir)%(Directory)%(FileName).deploy.cmd') + @(_MSDeployPackageLocation->'%(FileName).deploy-readme.txt') + @(_MSDeployPackageLocation->'%(RootDir)%(Directory)%(FileName).deploy-readme.txt') + @(_MSDeployPackageLocation->'%(RootDir)%(Directory)%(FileName).SetParameters.xml') + $(GenerateSampleParametersValueLocationDefault) + @(_MSDeployPackageLocation->'%(FileName).SetParameters.xml') + + + + + + Unknown + + + Unknown + + + + + + + + + + False + Unknown + Run + Default + + + + + + + + False + Unknown + Run + Default + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unknown + + + + + + + + + + + + + + + + + + + $(MSBuildThisFileDirectory)\CollectFiles\$(FilesToIncludeForPublish).targets + $(MSBuildThisFileDirectory)\CollectFiles\Microsoft.Web.Publishing.$(FilesToIncludeForPublish).targets + + + + + + + + $(MSBuildThisFileDirectory)\Deploy\$(WebPublishMethod).targets + $(MSBuildThisFileDirectory)\Deploy\Microsoft.Web.Publishing.Deploy.$(WebPublishMethod).targets + + + + + + + False + True + + + + Transform\Microsoft.Web.Publishing.AspNetCompileMerge.targets + + + + + + + + + + + Deploy\Microsoft.Web.Publishing.MSDeploy.Common.targets + + + + + + + + + + + + + + + + + + + + ExcludeApp_Data + + + + + + + + + + + + + + + + + + ExcludeGeneratedDebugSymbol + + + + + + + @(ExcludeXmlAssemblyFilesDependsOn); + + + + + + ExcludeXmlAssemblyFiles + + + + + + + <_EnableCleanOnBuildForMvcViews Condition=" '$(_EnableCleanOnBuildForMvcViews)'=='' ">true + + + + <_PublishTempFolderNamesToCleanup Include="Database;TransformWebConfig;CSAutoParameterize;InsertAdditionalCS;ProfileTransformWebConfig;Package" /> + + + + + + + + + + + true + $(ExcludeFilesByExtensionDependsOn); + .tt;.settings + + + + + + + + <_ExtToExclude>%(WebPublishExtnsionsToExcludeItem.Identity) + + + + + + + ExcludeFilesByExtension + + + + + + + + + + $(ExcludeFilesFromPackageDependsOn); + ExcludeApp_Data; + ExcludeGeneratedDebugSymbol; + ExcludeXmlAssemblyFiles; + ExcludeFilesByExtension; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True + + + + + + + + + + + + + + + + + + + + %(_ImportedMSDeployDeclareParameters.DefaultValue) + $(UserParametersFileParametersPriority) + + + + + + + + + + + %(_ImportedProfileMSDeployDeclareParameters.DefaultValue) + $(UserProfileParametersFileParametersPriority) + + + + + + + + + + + + + + + %(MSDeployParameterValue.ParameterValue) + %(MSDeployParameterValue.ParameterValue) + %(MSDeployParameterValue.Description) + %(MSDeployParameterValue.ParameterPriority) + + + + + %(MSDeployParameterValue.ParameterValue) + %(MSDeployParameterValue.Description) + %(MSDeployParameterValue.ParameterPriority) + + + + + + + + $(ValidateGlobalSettingsDependsOn); + GetProjectWebProperties; + + + + + + + + + + + + + + + + $(ValidateGlobalPackageSettingDependsOn); + GetProjectWebProperties; + ValidateGlobalSettings; + + + + + + + + + + + + <_CheckPackageLocation Condition="$(PackageAsSingleFile)">$(PackageFileName) + <_CheckPackageLocation Condition="!$(PackageAsSingleFile)">$(PackageArchiveRootDir) + <_CheckPackageLocationArchiveDir Condition="!$(PackageAsSingleFile)">$(PackageArchiveRootDir)\Archive + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_CleanWPPIfNeedToDependsOn> + $(_CleanWPPIfNeedToDependsOn); + ValidateGlobalSettings; + + + + + <_IsSameWPPBuildInfoAsLastBuildInfo>True + <_IsSameWPPBuildInfoAsLastBuildInfo Condition="!Exists($(_WPPLastBuildInfoLocation))">False + + + + + <_WPPCurrentBuildInfo>$(_WPPCurrentBuildInfo);PlatformName=$(PlatformName);Configuration=$(Configuration);WPPAllFilesInSingleFolder=$([System.IO.Path]::GetFullPath($(WPPAllFilesInSingleFolder)));WebPublishProfileFile=$(WebPublishProfileFile) + + + + <_WPPCurrentBuildInfoItems Include="$(_WPPCurrentBuildInfo)" /> + + + + + + + + <_IsSameWPPBuildInfoAsLastBuildInfo Condition="'@(_WPPLastBuildInfo)' != '@(_WPPCurrentBuildInfoItems)'" >False + + + + + + + <_WPPLastBuildInfoLocationDirectory>$([System.IO.Path]::GetDirectoryName($(_WPPLastBuildInfoLocation))) + + + + + + + + + + + + + $(OnBeforePipelineCollectFilesPhase); + _CleanWPPIfNeedTo; + + + $(OnAfterPipelineCollectFilesPhase); + ExcludeFilesFromPackage; + ImportParametersFiles; + + + $(OnBeforePipelineCollectFilesPhase); + $(PipelineCollectFilesPhaseDependsOn); + WPPCopyWebApplicaitonPipelineCircularDependencyError; + ProcessItemToExcludeFromDeployment; + GetProjectWebProperties; + ValidateGlobalSettings; + ValidateGlobalPackageSetting; + $(PipelineDependsOn); + $(PublishPipelineCollectFilesCore); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(TransformWebConfigBeforeTargets); + MarkWebConfigAssistFilesAsExclude; + + + $(OnBeforeTransformWebConfig); + $(TransformWebConfigDependsOn); + PreTransformWebConfig; + TransformWebConfigCore; + ParameterizeTransformWebConfigCore; + PostTransformWebConfig; + + + + + + + + + + + + + + + $(OnBeforeCollectWebConfigsToTransform); + $(CollectWebConfigsToTransformDependsOn); + PipelineCollectFilesPhase; + + + + + + + + $([System.String]::new($(WebPublishPipelineProjectDirectory)\$([System.IO.Path]::GetDirectoryName($([System.String]::new(%(DestinationRelativePath)))))).TrimEnd('\'))\$(ProjectConfigTransformFileName) + $(TransformWebConfigIntermediateLocation)\original + $(TransformWebConfigIntermediateLocation)\assist + $(TransformWebConfigIntermediateLocation)\transformed\%(DestinationRelativePath) + $([System.IO.Path]::GetFullPath($(WPPAllFilesInSingleFolder)\%(DestinationRelativePath))) + + <_WebConfigsToTransformOuputs Include="@(WebConfigsToTransform->'%(TransformOutputFile)')" /> + + + + + + + + + + + CollectWebConfigsToTransform; + + + + + + + + <_TempNoTransformWebConfigToTransform Include="@(WebConfigsToTransform)" + Condition="!Exists(%(TransformFile))" /> + + + + + + <_WebConfigsToTransformOuputsDirectories>@(_WebConfigsToTransformOuputs->'%(RootDir)%(Directory)') + + + + <_WebConfigsToTransformOuputsDirectories Include="$(_WebConfigsToTransformOuputsDirectories)" /> + + + + <_MessageArguments>@(WebConfigsToTransform->'%(DestinationRelativePath)', ', ') + + + + + + + + <_WebConfigTransformOutput>@(WebConfigsToTransform->'%(TransformOutputFile)') + <_WebConfigTransformOutput Condition="$(UseParameterizeToTransformWebConfig)">$(_WebConfigTransformOutput);$(_WebConfigTransformOutputParametersFile) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PreTransformWebConfig; + + + + + + + + + + + + + + + + PreTransformWebConfig; + + + + + + + + + + + + + + + + + + + + + + + + + TransformWebConfigCore; + ParameterizeTransformWebConfigCore; + + + + + + + + + + + + + + + + + + + + + + %(_ImportParameterizeTransformWebConfig.DefaultValue) + $(UserWebConfigParametersPriority) + + + + + + + + + + + + + + $(OnBeforeMarkWebConfigAssistFilesAsExclude); + $(MarkWebConfigAssistFilesAsExcludeDependsOn); + + + + + + + <_AllProjectConfigsInFiles Include="@(FilesForPackagingFromProject)" + Condition="'%(FilesForPackagingFromProject.Filename)%(FilesForPackagingFromProject.Extension)'=='$(ProjectConfigFileName)'" /> + + + + + + + + + + + + + + True + + + + + + + + + + + + $(ProfileTransformWebConfigBeforeTargets); + MarkWebConfigAssistFilesAsExclude; + + + $(ProfileTransformWebConfigAfterTargets); + TransformWebConfig; + + + $(OnBeforeProfileTransformWebConfig); + $(ProfileTransformWebConfigDependsOn); + PreProfileTransformWebConfig; + ProfileTransformWebConfigCore; + ParameterizeProfileTransformWebConfigCore; + PostProfileTransformWebConfig; + + + + + + + + + + + + + + + $(OnBeforeCollectFilesForProfileTransformWebConfigs); + $(CollectFilesForProfileTransformWebConfigsDependsOn); + PipelineCollectFilesPhase; + + + + + + + + + $(WebPublishPipelineProjectDirectory)\$([System.IO.Path]::GetDirectoryName($([System.String]::new(%(DestinationRelativePath)))))\$(ProjectProfileTransformFileName) + $(ProfileTransformWebConfigIntermediateLocation)\original + $(ProfileTransformWebConfigIntermediateLocation)\assist + $(ProfileTransformWebConfigIntermediateLocation)\transformed\%(DestinationRelativePath) + $([System.IO.Path]::GetFullPath($(WPPAllFilesInSingleFolder)\%(DestinationRelativePath))) + + <_ProfileWebConfigsToTransformOuputs Include="@(ProfileWebConfigsToTransform->'%(TransformOutputFile)')" /> + + + + + + + + + + CollectFilesForProfileTransformWebConfigs; + + + + + + + + + <_TempNoTrnasformFileForProfileWebConfigsToTransform Include="@(ProfileWebConfigsToTransform)" + Condition="!Exists(%(TransformFile))" /> + + + + + + + <_ProfileWebConfigsToTransformOuputsDirectories>@(_ProfileWebConfigsToTransformOuputs->'%(RootDir)%(Directory)') + + + + <_ProfileWebConfigsToTransformOuputsDirectories Include="$(_ProfileWebConfigsToTransformOuputsDirectories)" /> + + + + + <_MessageArguments>@(ProfileWebConfigsToTransform->'%(DestinationRelativePath)', ', ') + + + + + + + + <_ProfileWebConfigTransformOutput>@(ProfileWebConfigsToTransform->'%(TransformOutputFile)') + <_ProfileWebConfigTransformOutput Condition="$(UseParameterizeToProfileTransformWebConfig)">$(_ProfileWebConfigTransformOutput);$(_ProfileWebConfigTransformOutputParametersFile) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PreProfileTransformWebConfig; + + + + + + + + + + + + + + PreProfileTransformWebConfig; + + + + + + + + + + + + + + + + + + + + + + + + ProfileTransformWebConfigCore; + ParameterizeProfileTransformWebConfigCore; + + + + + + + + + + + + + + + + + + + + + + + %(_ImportParameterizeProfileTransformWebConfig.DefaultValue) + $(UserWebConfigParametersPriority) + + + + + + + + + + + + + ProfileTransformWebConfig; + + + + + + <_WebConfigsToInsertAdditionalCS Include="@(FilesForPackagingFromProject)" + Condition="$(InsertAdditionalWebConfigConnectionStringOnlyInRoot) + And '%(FilesForPackagingFromProject.Filename)%(FilesForPackagingFromProject.Extension)'=='$(ProjectConfigFileName)' + And !%(FilesForPackagingFromProject.Exclude) + And '%(DestinationRelativePath)' == '$(ProjectConfigFileName)'"> + $(InsertAdditionalWebCofigConnectionStringsLocation)\original + $(InsertAdditionalWebCofigConnectionStringsLocation)\assist + $(InsertAdditionalWebCofigConnectionStringsLocation)\transformed\%(DestinationRelativePath) + $([System.IO.Path]::GetFullPath($(WPPAllFilesInSingleFolder)\%(DestinationRelativePath))) + + <_WebConfigsToInsertAdditionalCS Include="@(FilesForPackagingFromProject)" + Condition="!$(InsertAdditionalWebConfigConnectionStringOnlyInRoot) + And '%(FilesForPackagingFromProject.Filename)%(FilesForPackagingFromProject.Extension)'=='$(ProjectConfigFileName)' + And !%(FilesForPackagingFromProject.Exclude)"> + $(InsertAdditionalWebCofigConnectionStringsLocation)\original + $(InsertAdditionalWebCofigConnectionStringsLocation)\assist + $(InsertAdditionalWebCofigConnectionStringsLocation)\transformed\%(DestinationRelativePath) + $([System.IO.Path]::GetFullPath($(WPPAllFilesInSingleFolder)\%(DestinationRelativePath))) + + <_WebConfigsToInsertAdditionalCSOuputFiles Include="@(_WebConfigsToInsertAdditionalCS->'%(TransformOutputFile)')"> + + + + + <_WebConfigsToInsertAdditionalCSOuputDirectories>@(_WebConfigsToInsertAdditionalCSOuputFiles->'%(RootDir)%(Directory)') + <_WebConfigsToInsertAdditionalCSOuput>@(_WebConfigsToInsertAdditionalCS->'%(TransformOutputFile)'); + + + + <_WebConfigsToInsertAdditionalCSOuputDirectories Include="$(_WebConfigsToInsertAdditionalCSOuputDirectories)" /> + + + + + + + + + + + + + + + + <_InsertAdditionalConnectionStringNamesPrepare Include="@(_ConnectionStringsToInsert)"> + %(_ConnectionStringsToInsert.Identity) + %(_ConnectionStringsToInsert.Identity)_ConnectionString + + <_InsertAdditionalConnectionStringNames Include="@(_InsertAdditionalConnectionStringNamesPrepare)"> + + <add + name="%(_InsertAdditionalConnectionStringNamesPrepare.ConnectionStringName)" + connectionString="%(_InsertAdditionalConnectionStringNamesPrepare.ConnectionString)" + providerName="$(InsertAdditionalWebConfigConnectionStringProviderName)" + xdt:Transform="InsertIfMissing" + xdt:Locator="Match(name)" + xdt:SupressWarnings="True" + /> + + + + + + + + <_WebConfigsToInsertAdditionalCS_Transform><?xml version="1.0"?> + <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> + <connectionStrings xdt:Transform="InsertIfMissing" xdt:SupressWarnings="True"> + @(_InsertAdditionalConnectionStringNames->'%(TransformXMLFragement)', '') + </connectionStrings> + </configuration> + + + + + + + + + + + + + + + + + + + + + + <_WebConfigToInsertAdditionalCS_Identity>%(_WebConfigsToInsertAdditionalCS.Identity) + <_WebConfigToInsertAdditionalCS_TransformOutputFile>%(_WebConfigsToInsertAdditionalCS.TransformOutputFile) + <_WebConfigsToInsertAdditionalCS_TransformScope>%(_WebConfigsToInsertAdditionalCS.TransformScope) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(OnBeforeInsertAdditionalWebCofigConnectionStrings); + $(InsertAdditionalWebCofigConnectionStringsDependsOn); + TransformWebConfig; + ProfileTransformWebConfig; + PreInsertAdditionalWebCofigConnectionStrings; + InsertAdditionalWebCofigConnectionStringsCore; + PostInsertAdditionalWebCofigConnectionStrings; + + + $(InsertAdditionalWebCofigConnectionStringsBeforeTargets); + PreAutoParameterizationWebConfigConnectionStrings; + AutoParameterizationWebConfigConnectionStrings; + + + + + + + + + + + + PipelineTransformPhase; + + + + + + <_WebConfigsToAutoParmeterizeCS Include="@(FilesForPackagingFromProject)" + Condition="'%(FilesForPackagingFromProject.Filename)%(FilesForPackagingFromProject.Extension)'=='$(ProjectConfigFileName)' And !%(FilesForPackagingFromProject.Exclude)"> + $(AutoParameterizationWebConfigConnectionStringsLocation)\original + $(AutoParameterizationWebConfigConnectionStringsLocation)\assist + $(AutoParameterizationWebConfigConnectionStringsLocation)\transformed\%(DestinationRelativePath) + $([System.IO.Path]::GetFullPath($(WPPAllFilesInSingleFolder)\%(DestinationRelativePath))) + + <_WebConfigsToAutoParmeterizeCSOuputFiles Include="@(_WebConfigsToAutoParmeterizeCS->'%(TransformOutputFile)')"> + + + + + <_WebConfigsToAutoParmeterizeCSOuputDirectories>@(_WebConfigsToAutoParmeterizeCSOuputFiles->'%(RootDir)%(Directory)') + <_WebConfigsToAutoParmeterizeCSOuput>@(_WebConfigsToAutoParmeterizeCS->'%(TransformOutputFile)');$(_WebConfigsToAutoParmeterizeCsTransformOutputParametersFile) + + + + <_WebConfigsToAutoParmeterizeCSOuputDirectories Include="$(_WebConfigsToAutoParmeterizeCSOuputDirectories)" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(DeployParameterPrefix)%24(name)-$(ProjectConfigFileName) Connection String + %24(name) $(_PublishLocalizedString_WebConfigConnectionStringParameterDescription) + + + + + + + + + + + + + + + + + + + + + + + + + <_AutoParameterizeCSTransform>$(_AutoParameterizeCSTransformWithDefaultValue) + <_AutoParameterizeCSTransform Condition="$(AutoParameterizationWebConfigCSNoDefaultValue)">$(_AutoParameterizeCSTransformNoDefaultValue) + <_AutoParameterizeCSUseXPath Condition="'$(_AutoParameterizeCSUseXPath)'==''">True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %(_ImportAutoParameterizeCSTransformWebConfig.DefaultValue) + $(VsWebConfigAutoCsParametersPriority) + + + + + + + + + + + + $(OnBeforeAutoParameterizationWebConfigConnectionStrings); + $(AutoParameterizationWebConfigConnectionStringsDependsOn); + PipelineTransformPhase; + PreAutoParameterizationWebConfigConnectionStrings; + AutoParameterizationWebConfigConnectionStringsCore; + PostAutoParameterizationWebConfigConnectionStrings; + + + + + + + + + + + + True + + + $(OnBeforePipelineTransformPhase); + $(PipelineTransformPhaseDependsOn); + PipeLineCollectFilesPhase; + TransformWebConfig; + ProfileTransformWebConfig; + InsertAdditionalWebCofigConnectionStrings; + MarkWebConfigAssistFilesAsExclude; + + + + + + + + + + + + + + + + + + + + + + $(PipelineMsdeploySpecificTransformPhaseBeforeTargets); + CopyAllFilesToSingleFolderForMsdeploy; + PipelineCopyAllFilesToOneFolderForMsdeploy; + PipelineDeployPhase; + + + $(OnBeforePipelineMsdeploySpecificTransformPhase); + $(PipelineMsdeploySpecificTransformPhaseDependsOn); + InsertAdditionalWebCofigConnectionStrings; + PreAutoParameterizationWebConfigConnectionStrings; + AutoParameterizationWebConfigConnectionStrings; + + + + + + + + + + + + + + + + + + + + + + <_WPPCopyWebApplicationDependsOn> + $(OnBefore_WPPCopyWebApplication); + $(_WPPCopyWebApplicationDependsOn); + CleanWebProjectOutputDir; + PipelineTransformPhase; + + + + + + <_AllExtraFilesUnderProjectOuputFolder Include="$(WebProjectOutputDir)\**" /> + <_AllExtraFilesUnderProjectOuputFolder + Remove="@(FilesForPackagingFromProject->'$(WebProjectOutputDir)\%(DestinationRelativePath)')" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(OnBeforePipelinePreDeployCopyAllFilesToOneFolder); + $(PipelinePreDeployCopyAllFilesToOneFolderDependsOn); + PipelineTransformPhase; + CopyAllFilesToSingleFolderForPackage; + + + + + + + + + + + + + + + $(OnBeforeCopyAllFilesToSingleFolderForMsdeploy); + CleanWebsitesWPPAllFilesInSingleFolder; + + + $(OnBeforeCopyAllFilesToSingleFolderForMsdeploy); + $(CopyAllFilesToSingleFolderForMsdeployDependsOn); + + + + + + + <_AllExtraFilesUnderTempFolder Include="$(WPPAllFilesInSingleFolder)\**" /> + <_AllExtraFilesUnderTempFolder + Remove="@(FilesForPackagingFromProject->'$(WPPAllFilesInSingleFolder)\%(DestinationRelativePath)')" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True + + + + + + + + + + $(OnBeforePipelineCopyAllFilesToOneFolderForMsdeploy); + $(PipelineCopyAllFilesToOneFolderForMsdeployDependsOn); + PipelineTransformPhase; + CopyAllFilesToSingleFolderForMsdeploy; + + + + + + + + + + + + + + + + + + + + + + _CheckPublishToolsUpToDate + + + + + + + $(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Inetstp@MajorVersion) + 0 + + + + + + + + + <_DeploymentUseIis Condition="'$(_DeploymentUseIis)'=='' And $(IncludeIisSettings)">$(UseIis) + <_DeploymentUseIis Condition="'$(_DeploymentUseIis)'==''">False + <_DeploymentAsIisApp>$(DeployAsIisApp) + <_DeploymentAsIisApp Condition="$(_DeploymentUseIis)">False + $(UseIis) + False + <_DeploymentUseIISExpressHint>$(UseIISExpress) + <_DeploymentUseIISExpressHint Condition="'$(_DeploymentUseIISExpressHint)'==''">False + + + + + + + + + + + + + + + + + + + + + + + <_Destination_IisServer_IisAppPoolName Condition="'@(_IISApplicationPoolFound)'!=''">%(_IISApplicationPoolFound.DestinationIISApplicationPool) + <_Destination_IisServer_IisAppPoolName Condition="'$(_Destination_IisServer_IisAppPoolName)'==''">$(IisServer_IisAppPoolName) + + + + <_IsRootWebsite>False + <_IsRootWebsite Condition="('$(IisUrl_SiteRelativePath)' == '/')">True + $(DefaultDeployIisRootAppPath) + $(IisServer_IisMajorVersion) + $(LocalIisVersion) + + + + + + + + + + + + + + + + + + + + + + + <_MSDeployInstalledVersionPath Include="@(_MSDeployInstalledVersionPathFromRegistry)"> + $([MSBuild]::GetRegistryValue('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\%(_MSDeployInstalledVersionPathFromRegistry.Identity)', 'InstallPath')) + $([MSBuild]::GetRegistryValue('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\%(_MSDeployInstalledVersionPathFromRegistry.Identity)', 'Version')) + + <_MSDeployInstalledVersions Include="@(_MSDeployInstalledVersionPath)" Condition="'%(_MSDeployInstalledVersionPath.InstallPath)'!='' And '%(_MSDeployInstalledVersionPath.DllVersionString)'!=''" > + $([System.Version]::New(%(_MSDeployInstalledVersionPath.DllVersionString)).Major).$([System.Version]::New(%(_MSDeployInstalledVersionPath.DllVersionString)).Minor) + + + + + + + + + <_MSDeployInstalledVersions Remove="@(_NeedtoRemove_MSDeployInstalledVersions)" /> + + + + + + + + <_DefaultMSDeployMaxVersion>0 + <_DefaultMSDeployMaxVersion Condition="'%(_MSDeployInstalledVersions.Identity)' != ''">$([System.Math]::Max($([System.Convert]::ToUInt32('$(_DefaultMSDeployMaxVersion)')),$([System.Convert]::ToUInt32('%(_MSDeployInstalledVersions.Identity)')))) + + + + + + <_SelectedMSDeployMaxVersion Include="@(_MSDeployInstalledVersions)" + Condition="'%(_MSDeployInstalledVersions.Identity)' =='$(_DefaultMSDeployMaxVersion)' " /> + + + + + <_SelectedMSDeployPath Include="@(_MSDeployInstalledVersions)" + Condition="'%(_MSDeployInstalledVersions.InstallPath)' =='$(MSDeployPath)' " /> + + + <_MSDeployVersionsToTry>@(_SelectedMSDeployPath->'%(DllVersion)') + + + + + <_MSDeployVersionsToTry Condition="'$(_MSDeployVersionsToTry)' == ''">@(_SelectedMSDeployMaxVersion->'%(DllVersion)') + @(_SelectedMSDeployMaxVersion->'%(InstallPath)') + + + + + + + + + + + + + + PipelineCopyAllFilesToOneFolderForMsdeploy; + ImportPublishingParameterValues; + PipelineMsdeploySpecificTransformPhase; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_PackageFileLocation Include="$(PackageFileName)" /> + + + + <_PackageRoot Condition="$(PackageAsSingleFile)">@(_PackageFileLocation->'%(RootDir)%(Directory)') + <_PackageRoot Condition="!$(PackageAsSingleFile)">$(PackageArchiveRootDir) + + + + + + + + + $(OnBeforeCopyAllFilesToSingleFolderForPackage); + CleanWebsitesWPPAllFilesInSingleFolder; + + + $(OnBeforeCopyAllFilesToSingleFolderForPackage); + $(CopyAllFilesToSingleFolderForPackageDependsOn); + + + + + + + <_AllExtraFilesUnderTempFolder Include="$(WPPAllFilesInSingleFolder)\**" /> + <_AllExtraFilesUnderTempFolder + Remove="@(FilesForPackagingFromProject->'$(WPPAllFilesInSingleFolder)\%(DestinationRelativePath)')" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True + + + + + + + + + + + + + + + + $(BeforeAddIis7ToSourceManifest); + PipelineCopyAllFilesToOneFolderForMsdeploy; + GenerateMsDeployManifestSettings; + + + + + + + + + + $(_MSDeployIisUrlSource_AppHostConfigPath) + + + + + + + + + + + + + + + + + $(BeforeAddDeclareParametersItemsForIis7); + PipelineCopyAllFilesToOneFolderForMsdeploy; + GenerateMsDeployManifestSettings; + + + + + + + + + + ProviderPath + AppHostConfig + ^$(_EscapeRegEx_MSDeployIisUrlSource_AppHostConfigPath)$ + $(DeployParameterIISAppNameDescription) + $(_MSDeployIisAppPathIIS7) + $(_MSDeployIisAppPathIIS7) + IisApp + $(VsIisAppParametersPriority) + + + + DeploymentObjectAttribute + application + application[@applicationPool='$(IisServer_IisAppPoolName)']/@applicationPool + $(DeployParameterIISAppPoolNameDescription) + $(_Destination_IisServer_IisAppPoolName) + $(_Destination_IisServer_IisAppPoolName) + + $(VsIisAppParametersPriority) + + + + + + + + + + + + + + + + + + $(BeforeAddIis6ToSourceManifest); + PipelineCopyAllFilesToOneFolderForMsdeploy; + GenerateMsDeployManifestSettings; + + + + + + + + + + + $(_MSDeployIisUrlSource_MetakeyPath) + + + + + + + + + + + + + + + + $(BeforeAddDeclareParametersItemsForIis6); + PipelineCopyAllFilesToOneFolderForMsdeploy; + GenerateMsDeployManifestSettings; + + + + + + + + + + + + + + + ProviderPath + MetaKey + ^$(_EscapeRegEx_MSDeployIisUrlSource_MetakeyPathSearchPath)$ + $(DeployParameterIISAppNameDescription) + $(_MSDeployIisAppPathIIS6) + $(_MSDeployIisAppPathIIS6) + IisApp + $(VsIisAppParametersPriority) + + + + DeploymentObjectAttribute + metaProperty + metaProperty[@name='AppPoolId' and @value='$(IisServer_IisAppPoolName)']/@value + $(DeployParameterIISAppPoolNameDescription) + $(_Destination_IisServer_IisAppPoolName) + $(_Destination_IisServer_IisAppPoolName) + + $(VsIisAppParametersPriority) + + + + + + + + + + + + + + + + + + + $(BeforeAddIisSettingAndFileContentsToSourceManifest); + PipelineCopyAllFilesToOneFolderForMsdeploy; + GenerateMsDeployManifestSettings; + AddContentPathToSourceManifest; + + + + + + + + + + + + + + + + + $(BeforeAddContentPathToSourceManifest); + PipelineCopyAllFilesToOneFolderForMsdeploy; + GenerateMsDeployManifestSettings; + AddIis7ToSourceManifest; + AddIis6ToSourceManifest + + + + + + + + + + + + + <_DeployManagedRuntimeVersion Condition="'$(DeployManagedRuntimeVersionNumeric)' != '' And ($(DeployManagedRuntimeVersionNumeric) >= '4.0') ">$(DeployManagedRuntimeVersion) + + <_DeployManagedRuntimeVersion Condition="'$(DeployManagedRuntimeVersionNumeric)' == '' And '$(DeployManagedRuntimeVersion)'!=''">$(DeployManagedRuntimeVersion) + + + + + + $(_MSDeployDirPath_FullPath) + $(_DeployManagedRuntimeVersion) + $(DeployEnable32bitAppOnWin64) + $(DeployManagedPipelineMode) + managedRuntimeVersion;enable32bitAppOnWin64;managedPipelineMode + + + + $(_MSDeployDirPath_FullPath) + + + + + $(_MSDeployDirPath_FullPath) + Directory + setAclResourceType + + + + + $(_MSDeployDirPath_FullPath) + anonymousAuthenticationUser + Directory + setAclUser;setAclResourceType + + + + + $(_MSDeployDirPath_FullPath)\App_Data + Write + Directory + setAclResourceType;setAclAccess + + + + + + + + + + + + + + + + + $(BeforeAddIisAndContentDeclareParametersItems); + PipelineCopyAllFilesToOneFolderForMsdeploy; + GenerateMsDeployManifestSettings; + AddDeclareParametersItemsForContentPath; + + + + + + + + + + + + + + + + + $(BeforeAddDeclareParametersItemsForContentPath); + PipelineCopyAllFilesToOneFolderForMsdeploy; + GenerateMsDeployManifestSettings; + AddDeclareParametersItemsForIis7; + AddDeclareParametersItemsForIis6; + + + + + + + + <_DestinationContentPath>$(_DestinationIisAppPhysicalPath) + + <_DestinationContentPath Condition="($(DestinationUseIis) or $(_DeploymentAsIisApp)) And ($(DestinationIisVersion) < '7') And ('$(_MSDeployIisAppPathIIS6)'!= '') " >$(_MSDeployIisAppPathIIS6) + + <_DestinationContentPath Condition="($(DestinationUseIis) or $(_DeploymentAsIisApp)) And ($(DestinationIisVersion) >= '7') And ('$(_MSDeployIisAppPathIIS7)' !='')">$(_MSDeployIisAppPathIIS7) + + <_MsDeployParameterNameForContentPath>$(DeployParameterIISAppName) + <_MsDeployParameterNameForContentPath Condition="$(_DeploymentUseIis) And (!$(DestinationUseIis))">$(DeployParameterIISAppPhysicalPath) + <_MsDeployParameterTagForContentPath>PhysicalPath + <_MsDeployParameterTagForContentPath Condition="$(_DeploymentAsIisApp)">IisApp + <_MsDeployParameterDefaultValueForContentPath>$(_DestinationContentPath) + <_MsDeployParameterExcludeSetParameterForContentPath>False + <_MsDeployParameterPhysicalFolderForSetAcl>{$(_MsDeployParameterNameForContentPath)} + <_MsDeployParameterPhysicalFolderAppDataForSetAcl>{$(_MsDeployParameterNameForContentPath)}/App_Data + + + + + + + + + + + + + + + + + ProviderPath + IisApp + ^$(_EscapeRegEx_MSDeployDirPath)$ + $(DeployParameterIISAppNameDescription) + $(_MsDeployParameterDefaultValueForContentPath) + $(_DestinationContentPath) + $(_MsDeployParameterTagForContentPath) + $(VsIisAppParametersPriority) + $(_MsDeployParameterExcludeSetParameterForContentPath) + + + + ProviderPath + contentPath + ^$(_EscapeRegEx_MSDeployDirPath)$ + $(DeployParameterIISAppPhysicalPathDescription) + $(_MsDeployParameterDefaultValueForContentPath) + $(_DestinationContentPath) + $(_MsDeployParameterTagForContentPath) + $(VsContentPathParametersPriority) + $(_MsDeployParameterExcludeSetParameterForContentPath) + + + + + + + + ProviderPath + setAcl + ^$(_EscapeRegEx_MSDeployDirPath)$ + $(DeployParameterIISAppPhysicalPathDescription) + $(_MsDeployParameterDefaultValueForContentPath) + $(_DestinationContentPath) + + $(_MsDeployParameterExcludeSetParameterForContentPath) + $(VsSetAclPriority) + + + + ProviderPath + setAcl + ^$(_EscapeRegEx_MSDeployDirPath)\\App_Data$ + Add write permission to App_Data folder + {$(_MsDeployParameterNameForContentPath)}/App_Data + $(_DestinationContentPath)/App_Data + Hidden + $(VsSetAclPriority) + True + + + + + + + + + + + + + + + + + + + + + + $(BeforeWriteItemsToSourceManifest); + $(WriteItemsToSourceManifestDependsOn); + AddIisSettingAndFileContentsToSourceManifest; + + + + + + + + + + + + + + + + + + + + + + + $(BeforeAddDeclareParametersItems); + AddIisAndContentDeclareParametersItems; + AddDeclareParametersItemsForDatabaseScript; + + + + + <_PublishDefaultVDirectoryPath>$(RemoteSitePhysicalPath) + <_PublishDefaultVDirectoryPath Condition="'$(_PublishDefaultVDirectoryPath)'==''">$(_DestinationIisAppPhysicalPath) + + + + + + + + <_MSBuildReplaceRuleItemMSBuildProjectDirectory Include="$(WebPublishPipelineProjectDirectory)" /> + + + + + + + + + DestinationVirtualDirectory + .* + ^$(_EscapeRegExMSBuildProjectDirectory)$ + $(DeployParameterIISAppPhysicalPathDescription) + $(_DestinationIisAppPhysicalPath) + + $(_PublishDefaultVDirectoryPath) + PhysicalPath + $(VsDestinationVDirParametersPriority) + + + + + + + + + + + + + <_GatherParamsDependsOn> + $(_GatherParamsDependsOn); + GetProjectWebProperties; + ImportParametersFiles; + TransformWebConfig; + ProfileTransformWebConfig; + AutoParameterizationWebConfigConnectionStrings; + AddDeclareParametersItems; + ImportPublishingParameterValues; + + + + + + + + + + + + + + + + + + + + + + <_MSDeployDirPath Include="$(WPPAllFilesInSingleFolder)" /> + + + + + + + + + + + + + + + + + + + <_MSDeployDirPath_FullPath>@(_MSDeployDirPath->'%(FullPath)') + <_MSDeployIisAppPathIIS7>$(DeployIisAppPath) + <_MSDeployIisAppPathIIS6>$(DeployIisAppPath) + <_MSDeployIisAppPathIIS7 Condition="'$(_MSDeployIisAppPathIIS7)'==''">$(DefaultDeployIisAppPath) + <_MSDeployIisAppPathIIS6 Condition="'$(_MSDeployIisAppPathIIS6)'==''">$(DefaultDeployIisAppPath) + + + + <_MSDeploySourceManifest Include="$(PackageSourceManifest)" /> + <_MSDeployParametersFile Include="$(PackageParametersFile)" /> + <_MSDeploySampleParametersValue Condition="$(GenerateSampleDeployScript)" Include="$(GenerateSampleParametersValueLocation)" /> + <_MSDeployGenerateSampleDeployScriptReadMeLocation Condition="$(GenerateSampleDeployScript)" Include="$(GenerateSampleDeployScriptReadMeLocation)" /> + + + + + + + GenerateMsDeployManifestSettings; + + + + + + + + + + + + + + + + + + + + + + + + + + + + GenerateMsDeployManifestSettings; + CleanWebsitesPackageCore; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GenerateMsDeployManifestSettings; + + + + + + + + + + + + + + + + + + $(OnAfterGenerateMsdeployManifestFiles); + AddDeclareParametersItems; + CheckAndCleanMSDeployPackageIfNeeded; + + + $(GenerateMsdeployManifestFilesDependsOn); + PipelineCopyAllFilesToOneFolderForMsdeploy; + GenerateMsDeployManifestSettings; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + dirPath + $(_Escaped_WPPAllFilesInSingleFolder)\\App_Data$ + Source + + + + + dirPath + $(_Escaped_DestinationContentPath)\\App_Data$ + Destination + + + + + + + + + + + + $(OnBeforePackageUsingManifest); + $(PackageUsingManifestDependsOn); + GetMSDeployInstalledVersionPath; + GenerateMsDeployManifestSettings; + GenerateMsdeployManifestFiles; + GenerateSkipRuleForAppData; + + + + + + + + manifest + @(_MSDeploySourceManifest->'%(FullPath)') + + archiveDir + @(_MSDeployArchiveDir->'%(FullPath)') + package + @(_MSDeployPackageFile->'%(FullPath)') + True + + + + + + + + + $(PackageSourceRoot) + $(DeployEncryptKey) + $(IisServer_WebServerAppHostConfigDirectory) + $(IisServer_WebServerManifest) + $(IisServer_WebServerDirectory) + + + + $(PackageDestinationRoot) + $(DeployEncryptKey) + False + + + + + + + + + + + + + + + + <_VsPackageParametersFile> + <_VsPackageParametersFile Condition="$(UseDeclareParametersXMLInMsDeploy)">$(PackageParametersFile) + + + + <_Package_MsDeployDeclareParameters Include="@(MsDeployDeclareParameters)" Condition="!$(UseDeclareParametersXMLInMsDeploy)" /> + + + + + + + + + + + + + + + + + + + + + + + GetMSDeployInstalledVersionPath; + GenerateMsDeployManifestSettings; + GenerateMsdeployManifestFiles; + Package; + + + + + + + + + + + manifest + @(_MSDeploySourceManifest->'%(FullPath)') + package + @(_MSDeployPackageFile->'%(FullPath)') + archiveDir + @(_MSDeployArchiveDir->'%(FullPath)') + + auto + + + + + + + + $(TestDeployPackageToLocalSourceRoot) + $(DeployEncryptKey) + + + + $(TestDeployPackageToLocalDestinationRoot) + $(DeployEncryptKey) + False + + + + + + + + + + + + + + + + + + + true + Basic + + WMSVC + + GetProjectWebProperties; + ValidateGlobalSettings; + + + + + + <_UseWMSVC>false + <_UseWMSVC Condition="'$(MSDeployPublishMethod)'=='WMSVC'">true + <_UseRemoteAgent>false + <_UseRemoteAgent Condition="'$(MSDeployPublishMethod)'=='RemoteAgent'">true + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LinkExtensioninfo.xml + HttpCertConfigExtension;CertificateExtension;FrameworkConfigExtension + ContentExtension + + + + + + + + + false + + GenerateGlobalPublishSetting; + _CheckAzureNet46Support; + ValidateGlobalPackageSetting; + GenerateMsDeployManifestSettings; + GenerateMsdeployManifestFiles; + GenerateSkipRuleForAppData; + ImportPublishingParameterValues; + PipelineMsdeploySpecificTransformPhase; + Package; + + + + + + + + + + + + manifest + @(_MSDeploySourceManifest->'%(FullPath)') + package + @(_MSDeployPackageFile->'%(FullPath)') + archiveDir + @(_MSDeployArchiveDir->'%(FullPath)') + + + auto + + + + DoNotDeleteRule + + + + <_MSDeploySourceWebServerAppHostConfigDirectory>$(IisServer_WebServerAppHostConfigDirectory) + <_MSDeploySourceWebServerManifest>$(IisServer_WebServerManifest) + <_MSDeploySourceWebServerDirectory>$(IisServer_WebServerDirectory) + + + + + + + + + + + + <_PublishMsDeployServiceUrl>$(MsDeployServiceUrl) + <_PublishMsDeployServiceUrl Condition="('$(MSDeployPublishMethod)'=='INPROC')"> + + + + iisApp + contentPath + + + + + + $(MSDeployPublishSourceRoot) + $(DeployEncryptKey) + $(_MSDeploySourceWebServerAppHostConfigDirectory) + $(_MSDeploySourceWebServerManifest) + $(_MSDeploySourceWebServerDirectory) + + + + $(MSDeployPublishDestinationRoot) + $(_PublishMsDeployServiceUrl) + $(UserName) + $(Password) + $(DeployEncryptKey) + False + $(AuthType) + $(_MSDeployDestinationWebServerAppHostConfigDirectory) + $(_MSDeployDestinationWebServerManifest) + $(_MSDeployDestinationWebServerDirectory) + + + + + + + WebConfigEncryptProvider + $(MSDeployWebConfigEncryptProvider) + + + + + + + + + false + + + + + + + + + + + + <_VsPublishParametersFile> + <_VsPublishParametersFile Condition="$(UseDeclareParametersXMLInMsDeploy) and '$(_VsPublishParametersFile)'==''">$(PublishParametersFile) + + + + + + <_VsPublish_MsDeployDeclareParameters Include="@(MsDeployDeclareParameters)" Condition="!$(UseDeclareParametersXMLInMsDeploy) And !$(CreatePackageOnPublish)" /> + + + + + + + + <_EnableRuleList>$(MsDeployDoNotDeleteRule) + <_EnableRuleList Condition="'$(_EnableRuleList)'=='' and '$(EnableMSDeployAppOffline)'=='true'">AppOffline + <_EnableRuleList Condition="'$(_EnableRuleList)'!='' and '$(EnableMSDeployAppOffline)'=='true'">$(_EnableRuleList);AppOffline + <_EnableRuleList Condition="'$(_EnableRuleList)'=='' and '$(MSDeployEnableWebConfigEncryptRule)'=='true'">EncryptWebConfig + <_EnableRuleList Condition="'$(_EnableRuleList)'!='' and '$(MSDeployEnableWebConfigEncryptRule)'=='true'">$(_EnableRuleList);EncryptWebConfig + + + + + + + + + + + $(OnBeforeValidatePublishProfileSettings); + $(ValidatePublishProfileSettingsDependsOn); + + + + + + + + + + + + + + + + + + + + + + + + MSDeployPublish; + + + + + + + + + + + + Package; + + + + + + + + + + + + $(WebPublishDependsOn); + ValidatePublishProfileSettings; + + + $(WebPublishDependsOn); + Web$(WebPublishMethod)Publish; + + + + + + + + + + + + $(OnBeforePipelineDeployPhase); + $(PipelineDeployPhaseDependsOn); + $(DeployTarget); + + + $(PipelineDeployPhaseAfterTargets); + + + + + + + + + + + + + + + + + + $(DbDacFxPreviewDependsOn); + GetMSDeployInstalledVersionPath; + + + $(DbDacFxPreviewDependsOn); + LocalDbDacFxPreview; + + + $(DbDacFxPreviewDependsOn); + RemoteDbDacFxPreview; + + + + + + + + + + + + $(DbFullSqlPreviewDependsOn); + GetMSDeployInstalledVersionPath; + + + + + + + <_MsDeployDbFullSqlPreviewSourceNoPath Remove="@(_MsDeployDbFullSqlPreviewSourceNoPath)" /> + + + + + + + + <_MsDeployDbFullSqlPreviewSource Remove="@(_MsDeployDbFullSqlPreviewSource)" /> + <_MsDeployDbFullSqlPreviewSource Include="@(_MsDeployDbFullSqlPreviewSourceNoPath)"> + $(_MsDeployDBFullSqlPreviewSourceConnectionString) + + + <_MsDeployDbFullSqlPreviewDestination Remove="@(_MsDeployDbFullSqlPreviewDestination)" /> + <_MsDeployDbFullSqlPreviewDestination Include="DbFullSql"> + $(_MsDeployDbFullSqlPreviewOutputPath) + + + + + + + + + + + + + + + + $(ValidateDbDacFxPreviewSettingsDependsOn); + GetMSDeployInstalledVersionPath; + + + + + + + + + + + + + + + + + + + + + + + + + $(LocalDbDacFxPreviewDependsOn); + GetMSDeployInstalledVersionPath; + ValidateDbDacFxPreviewSettings; + + + + + + + <_MsDeployDbDacFxPreviewPreSourceOptions Remove="@(_MsDeployDbDacFxPreviewPreSourceOptions)" /> + <_MsDeployDbDacFxPreviewPreSourceOptions Include="DbDacFx"> + False + includeData + + + + + + + + + + <_MsDeployDbDacFxPreviewSource Remove="@(_MsDeployDbDacFxPreviewSource)" /> + <_MsDeployDbDacFxPreviewSource Include="DbDacFx"> + $([System.IO.Path]::GetFullPath($(_MsDeployDbDacFxPreviewDacpacFile))) + + + <_MsDeployDbDacFxPreviewDestination Remove="@(_MsDeployDbDacFxPreviewDestination)" /> + <_MsDeployDbDacFxPreviewDestination Include="DbDacFx"> + $(_MsDeployDbDacFxPreviewDestinationConnectionString) + Script + + + + + + + + + + + + + + + + $(RemoteDbDacFxPreviewDependsOn); + GetMSDeployInstalledVersionPath; + GenerateGlobalPublishSetting; + ValidateDbDacFxPreviewSettings; + _DetectDbDacFxProvider; + + + + + <_PublishMsDeployServiceUrl>$(MsDeployServiceUrl) + <_PublishMsDeployServiceUrl Condition="('$(MSDeployPublishMethod)'=='INPROC')"> + + + + + <_MsDeployDbDacFxPreviewPreSourceOptions Remove="@(_MsDeployDbDacFxPreviewPreSourceOptions)" /> + <_MsDeployDbDacFxPreviewPreSourceOptions Include="DbDacFx"> + False + includeData + + + + + + + + + + + + + + + <_MsDeployRemoteDbDacFxPreviewSource Remove="@(_MsDeployRemoteDbDacFxPreviewSource)" /> + <_MsDeployRemoteDbDacFxPreviewSource Include="DbDacFx"> + $([System.IO.Path]::GetFullPath($(_MsDeployDbDacFxPreviewDacpacFile))) + + + <_MsDeployRemoteDbDacFxPreviewDestination Remove="@(_MsDeployRemoteDbDacFxPreviewDestination)" /> + <_MsDeployRemoteDbDacFxPreviewDestination Include="DbDacFx"> + $(_MsDeployDbDacFxPreviewDestinationConnectionString) + $(_PublishMsDeployServiceUrl) + $(UserName) + $(Password) + $(AuthType) + $(_MSDeployDestinationWebServerAppHostConfigDirectory) + $(_MSDeployDestinationWebServerManifest) + $(_MSDeployDestinationWebServerDirectory) + Script + + + + + + + + + + + + + + + + + + + + + + + + <_PublishMsDeployServiceUrl>$(MsDeployServiceUrl) + <_PublishMsDeployServiceUrl Condition="('$(MSDeployPublishMethod)'=='INPROC')"> + <_MSDeployPublishSourceType>dbDacFx + + + + <_MsDeploySourceProviderSetting Remove="@(_MsDeploySourceProviderSetting)" /> + <_MsDeploySourceProviderSetting Include="$(_MSDeployPublishSourceType)"> + $(_PublishMsDeployServiceUrl) + $(UserName) + $(Password) + $(AuthType) + + <_DbDacFxDestinationPathesToPublish Include="$([MSBuild]::Escape($(_MsDeployDbDacFxPreviewDestinationConnectionString)))" /> + + + + + + + + + + + + + + + + + + + + + $(WebPublishPipelineProjectDirectory)\apiapp.json + + + + + + + + true + + + \ No newline at end of file diff --git a/eng/msbuild/web/Web/Microsoft.Web.Publishing/ImportAfter/Microsoft.Web.AzureAD.Publishing.targets b/eng/msbuild/web/Web/Microsoft.Web.Publishing/ImportAfter/Microsoft.Web.AzureAD.Publishing.targets new file mode 100644 index 00000000..3076855a --- /dev/null +++ b/eng/msbuild/web/Web/Microsoft.Web.Publishing/ImportAfter/Microsoft.Web.AzureAD.Publishing.targets @@ -0,0 +1,300 @@ + + + + + + $(PipelineTransformPhaseDependsOn);_TransformWebConfigForAzureAuthentication + + + + <_WebConfigTransformFolderForAzureAuthentication>$(_WPPDefaultIntermediateOutputPath)WebConfigTransformFolderForAzureAuthentication + + + <_WebConfigsToTransformForAzureAuthentication Include="@(FilesForPackagingFromProject)" + Condition="'%(FilesForPackagingFromProject.Filename)%(FilesForPackagingFromProject.Extension)'=='$(ProjectConfigFileName)' + And !%(FilesForPackagingFromProject.Exclude) + And '%(DestinationRelativePath)' == '$(ProjectConfigFileName)'"> + $(_WebConfigTransformFolderForAzureAuthentication)\original + $(_WebConfigTransformFolderForAzureAuthentication)\assist + $(_WebConfigTransformFolderForAzureAuthentication)\transformed\%(DestinationRelativePath) + $([System.IO.Path]::GetFullPath($(WPPAllFilesInSingleFolder)\%(DestinationRelativePath))) + + <_WebConfigsToTransformForAzureAuthenticationOuputFiles Include="@(_WebConfigsToTransformForAzureAuthentication->'%(TransformOutputFile)')"> + + + + + <_WebConfigsToTransformForAzureAuthenticationOuputDirectories>@(_WebConfigsToTransformForAzureAuthenticationOuputFiles->'%(RootDir)%(Directory)') + <_WebConfigsToTransformForAzureAuthenticationOuput>@(_WebConfigsToTransformForAzureAuthentication->'%(TransformOutputFile)'); + + + + <_WebConfigsToTransformForAzureAuthenticationOuputDirectories Include="$(_WebConfigsToTransformForAzureAuthenticationOuputDirectories)" /> + + + + + + + + + + + + + + + + $(ADAppIDUri) + + + + + false + <_RemoveCertificateValidationTransform Condition="'$(RemoveCertValidationElement)' == 'true'"><certificateValidation certificateValidationMode="None" xdt:Transform="Remove" /> + <_RemoveExistingAudienceUrisTransform Condition="'$(PreserveExistingAudienceUris)' != 'true'"><add xdt:Transform="RemoveAll" /> + + + + <_ReplaceRealmAndAudienceUriAppSetting Condition="'$(ADWebAPIBased)'!='true' And '$(ADUsesOwinOrOpenIdConnect)'!='true'"> + <appSettings> + <add key="ida:AudienceUri" + value="{% parameter='AD_AudienceUriAppSetting' xpathlocator='key' description='AD Audience Uri App Setting' defaultValue='%24(value)' tags='AD_AudienceUriAppSetting' %}" + xdt:Transform="SetTokenizedAttributes(value)" xdt:SupressWarnings="True" xdt:Locator="Match(key)"/> + <add key="ida:Realm" + value="{% parameter='AD_RealmAppSetting' xpathlocator='key' description='AD Realm App Setting' defaultValue='%24(value)' tags='AD_RealmAppSetting' %}" + xdt:Transform="SetTokenizedAttributes(value)" xdt:SupressWarnings="True" xdt:Locator="Match(key)"/> + <add key="ida:FederationMetadataLocation" + value="{% parameter='AD_MetadataUrl' xpathlocator='key' description='AD MetadataUrl App Setting' defaultValue='%24(value)' tags='AD_MetadataUrlAppSetting' %}" + xdt:Transform="SetTokenizedAttributes(value)" xdt:SupressWarnings="True" xdt:Locator="Match(key)"/> + </appSettings> + + <_ReplaceADClientID Condition="'$(ADClientAPPID)'!='' And '$(ADUsesOwinOrOpenIdConnect)'!='true'"> + <appSettings> + <add key="ida:ClientID" + value="{% parameter='AD_ClientID' xpathlocator='key' description='AD Client Application ID' defaultValue='%24(value)' tags='AD_ClientAPPID' %}" + xdt:Transform="SetTokenizedAttributes(value)" xdt:SupressWarnings="True" xdt:Locator="Match(key)"/> + </appSettings> + + <_ReplaceADClientPassword Condition="'$(ADClientPassword)'!='' And '$(ADUsesOwinOrOpenIdConnect)'!='true'"> + <appSettings> + <add key="ida:Password" + value="{% parameter='AD_ClientPassword' xpathlocator='key' description='AD Client Password' defaultValue='%24(value)' tags='AD_Password' %}" + xdt:Transform="SetTokenizedAttributes(value)" xdt:SupressWarnings="True" xdt:Locator="Match(key)"/> + </appSettings> + + <_ReplaceADWebAPIAudienceAppSetting Condition="'$(ADWebAPIBased)'=='true' And '$(ADUsesOwinOrOpenIdConnect)'!='true'"> + <appSettings> + <add key="ida:Audience" + value="{% parameter='AD_WebAPI_Audience' xpathlocator='key' description='AD Web API Audience' defaultValue='%24(value)' tags='AD_WebAPI_Audience' %}" + xdt:Transform="SetTokenizedAttributes(value)" xdt:SupressWarnings="True" xdt:Locator="Match(key)"/> + </appSettings> + + <_ReplaceADWIFArtifacts Condition="'$(ADWebAPIBased)'!='true' And '$(ADUsesOwinOrOpenIdConnect)'!='true'"> + <system.identityModel> + <identityConfiguration> + $(_RemoveCertificateValidationTransform) + <audienceUris> + $(_RemoveExistingAudienceUrisTransform) + <add + value="APPIDUri" + xdt:Transform="Insert" xdt:SupressWarnings="True" /> + </audienceUris> + + <audienceUris> + <add + value="{% token='%24(value)' parameter='AD_%24(value)' xpathlocator='value' description='AD AppIDUri' defaultValue='%24(value)' tags='ADrealmUri' %}" + xdt:Transform="SetTokenizedAttributes(value)" xdt:SupressWarnings="True" /> + </audienceUris> + + </identityConfiguration> + </system.identityModel> + <system.identityModel.services> + <federationConfiguration> + <wsFederation + realm="{% xpathlocator='requireHttps' parameter='AD_APPIDUri' description='AD AppIDUri' defaultValue='%24(realm)' tags='ADAPPIDUri' %}" + xdt:Transform="SetTokenizedAttributes(realm)" xdt:SupressWarnings="True" /> + <wsFederation + issuer="{% xpathlocator='requireHttps' parameter='AD_Issuer' description='AD Issuer' defaultValue='%24(issuer)' tags='ADISSUER' %}" + xdt:Transform="SetTokenizedAttributes(issuer)" xdt:SupressWarnings="True" /> + </federationConfiguration> + </system.identityModel.services> + + <_ReplaceADClientIDDev14 Condition="'$(ADClientAPPID)'!='' And '$(ADUsesOwinOrOpenIdConnect)'=='true'"> + <appSettings> + <add key="ida:ClientId" + value="{% parameter='AD_ClientID' xpathlocator='key' description='AD Client Application ID' defaultValue='%24(value)' tags='AD_ClientAPPID' %}" + xdt:Transform="SetTokenizedAttributes(value)" xdt:SupressWarnings="True" xdt:Locator="Match(key)"/> + </appSettings> + + <_ReplaceADClientPasswordDev14 Condition="'$(ADClientPassword)'!='' And '$(ADUsesOwinOrOpenIdConnect)'=='true'"> + <appSettings> + <add key="ida:ClientSecret" + value="{% parameter='AD_ClientPassword' xpathlocator='key' description='AD Client Password' defaultValue='%24(value)' tags='AD_Password' %}" + xdt:Transform="SetTokenizedAttributes(value)" xdt:SupressWarnings="True" xdt:Locator="Match(key)"/> + </appSettings> + + <_ReplaceADTenantIdDev14 Condition="'$(ADTenantId)'!='' And '$(ADUsesOwinOrOpenIdConnect)'=='true'"> + <appSettings> + <add key="ida:TenantId" + value="{% parameter='AD_TenantId' xpathlocator='key' description='AD Tenant Id' defaultValue='%24(value)' tags='AD_TenantId' %}" + xdt:Transform="SetTokenizedAttributes(value)" xdt:SupressWarnings="True" xdt:Locator="Match(key)"/> + </appSettings> + + <_ReplaceADDomainDev14 Condition="'$(ADDomain)'!='' And '$(ADUsesOwinOrOpenIdConnect)'=='true'"> + <appSettings> + <add key="ida:Domain" + value="{% parameter='AD_Domain' xpathlocator='key' description='AD Domain' defaultValue='%24(value)' tags='AD_Domain' %}" + xdt:Transform="SetTokenizedAttributes(value)" xdt:SupressWarnings="True" xdt:Locator="Match(key)"/> + </appSettings> + + <_ReplaceADPostLogoutRedirectUriDev14 Condition="'$(ADPostLogoutRedirectUri)'!='' And '$(ADUsesOwinOrOpenIdConnect)'=='true'"> + <appSettings> + <add key="ida:PostLogoutRedirectUri" + value="{% parameter='AD_PostLogoutRedirectUri' xpathlocator='key' description='AD PostLogoutRedirectUri' defaultValue='%24(value)' tags='AD_PostLogoutRedirectUri' %}" + xdt:Transform="SetTokenizedAttributes(value)" xdt:SupressWarnings="True" xdt:Locator="Match(key)"/> + </appSettings> + + + + + + $(ADClientAPPID) + + + $(ADIssuer) + + + https://login.windows.net/$(ADDomain)/FederationMetadata/2007-06/FederationMetadata.xml + + + $(ADClientPassword) + + + $(ADAppIDUri) + + + $(ADAppIDUri) + + + $(ADAppIDUri) + + + $(ADTenantId) + + + $(ADDomain) + + + $(ADPostLogoutRedirectUri) + + + + + + + + + <_WebConfigsToTransformForAzureAuthentication_Identity>%(_WebConfigsToTransformForAzureAuthentication.Identity) + <_WebConfigsToTransformForAzureAuthentication_TransformOutputFile>%(_WebConfigsToTransformForAzureAuthentication.TransformOutputFile) + <_WebConfigsToTransformForAzureAuthentication_TransformScope>%(_WebConfigsToTransformForAzureAuthentication.TransformScope) + + + + + + + + <_WebConfigsToTransformForAzureAuthenticationOutputFolder>$(_WPPDefaultIntermediateOutputPath)AzureAuthentication + <_WebConfigsToTransformForAzureAuthenticationOutputParametersFile>$(_WebConfigsToTransformForAzureAuthenticationOutputFolder)\TransformForAzureAuthentication.parameters.xml + + + + + + + + + + + + + %(_ImportAutoParameterizeAzureAuthenticationWebConfig.DefaultValue) + $(VsWebConfigAutoCsParametersPriority) + + + + + + + + + + + + + + + + + + <_TransformWebConfigForAzureAuthenticationDependsOn> + _TransformWebConfigForAzureAuthenticationCore; + _PostTransformWebConfigForAzureAuthentication; + + + + + + + + + + \ No newline at end of file diff --git a/eng/msbuild/web/Web/Microsoft.Web.XmlTransform.dll b/eng/msbuild/web/Web/Microsoft.Web.XmlTransform.dll new file mode 100644 index 0000000000000000000000000000000000000000..95914431adf2f5a3a2900c91e29dbaaef6fe8c84 GIT binary patch literal 76992 zcmb@v31C!3@;~0M-^`mcA(LY!2}c5f@R%cz1P~B0+=5&JA_58lB1C})Gl_~Z2!eQ` zBI@d{qFbo|Ba?zS5^NRAu73E{5&M05*EN-aE$?^BrqNj}&Vv=Es`_^qbI-T45qE~sq z7$Ah-5W-T_wtfhgBV3245P2MyN^c_QXhN(7AM~Q14V0_yEQ(71w?8#XB>c{W+^H0R z+%L!w>0iDfo-75jzz{(^yolE=&HHbjwPPM=eE9mePhezf(*s z6)Zu}E+Fm{*+L0TS8A&vEC=@YXVJE0Xpfk7SMU-AvV~;Zs2RU$cL&TfG9s?aM2Er! z11#|mJW<+^Y48O0Xn8+Ht#px3zurHN1X zI@jXqb$$<+gt1ndb{u>s0g&S>w5#xp$J6F=`TVgmr6d&2C~0OJ2sywO{={W%x%tL{ zFxpsGhuZc&3n~Z$ZBvR|;j{waccF~5ddOWOtzPx;(ZjAr3V0Hlxhq;QKnge++P4VF z79u${VEd&-E?`;F8cnSQ6`4@{BS|=ZF^_Zxf?O$EC>yhXzH}&BQSIM|MRLHRtX=(m z8J3P*3*#~CfDsKxFV9LqN}3%KFa_~GHp~3A5ve3ZW@i^JmJ2e;1DOjeTPPJUdcg5h zsCj>D00{gP4F(pYvQT%%Ww+6CEGjlUQx%)yI)jlay3pKXAA&&Ki?qEctt6+hq9bGr z#WMFeL#VJYR(m$l9;(eo?^uJ5#FglgL~~sE8kCdD`>EBYh61c5K1Yg{uE{|dN!Rjo zmJMgOk|U9j8O|_7k80}qol;-#lo~TSlW<0-)K@#D_LQATNOekmv{UL&ol=i9JCl2L zr_{f9N*(X&Ov2_)sULPq9qR5(!Wo@XKkbxyq}7>(J3FQ3csh&gbV_}yQ)SNEOz65>w08^}nJoFPGm9j7p4oc^6M9zr~@;P+~6u3MIcgPipb@7-N zkkpXNM*rXsco8@nf@TN337_S0pqalg;B!XfnRuqn?~7YLHCTA!9?h4|7;r6TEMS#s z>B0|n&`-Jq`XTNo!~R%ATGDdHA&E1dz!4-OG8@HYX*KVY4C-6a%p*Et?|JRgb423}`AQ0GL5@R`m6gpslykHq6@)`1aE&pNV< zreuV*47Q_^a}wmV1+BQ(v{((s6nz*PCt6djWYF5_YZqp1eKG=)l?6U)yxxzw;<$Q5=@01*@}&0kR(^FX-0 zG^Voz>;iY}u#nqXieQtC=2c)>APy$8nv=?gb2$=Vs3Jev=xQi&8RD* zz!O4~3wc!Qiv$XTSv8Y05Z*xCt~94W8hy9C9{NdgDVqiQX9o*Le{pO;qQ|f#h-eL~feqb(Vuz z7>pg6rm!A~;huP5nvy&N&4J^^`bZnTY{kQAo^;vpG)r+kz~D?4S;7}SV8o1YKv%`E z0|$Qo`Iof;!;M5^mCzhE7G?NDwJC?eljx`5ZzBH4E=BmGAJIR?pU)8DANYfJ@Q>O{ z5+PJK=DAd6X9Wrusa_Dt_Lx9yP`aI1aThu}Okh=`V0#s7du5x;70zkvo^B#f|FVfh zFuC=S6QEs6ta?WsuT+|1Cf9RE;y{b=0T(P1O{&(L$dQ<4B0sB@8nYro1o~71Err*m zA!(z+(BZ|U6*c1?(|H+av@qHg{Vp1c!1OU)&Xvf)Sq0#a73B*XR`3U;NBN4&6Kv}W zVhY5>2T)!d2*YH$eHTWt;z{cs61{4b?v+rFDz*|UP#&jRsSU~$*5LkDvX-9s-jrUn z+RfmkP9}B%v1JQAQYeenT8I!bDM0<8M3e#aCZg$bx*|e+3Qwv17zmln%Zh-ftXHku z3!?=skDh#c!qqvRJ!K;f7$AEWBwhm{KLww$`dB=TchJX@i3Up>9fc)r_>VvO7o|)b z?V6NwP6bgGDm^(v;*dTLhGya@g}b6IP&@on^4dJSEcc^-NH4*VQ^}}(?*wKMNa_Bhb8*yn$w!$Tq5l?K%|+v0pnI{7#hHC^hlindMg~>6@5TD zYk`#1dZn`tfmjzsD6Xr7)cvA>+S~jWJZM^-O{J0soXB=O)N86J@f6vUfHh z9+@YDIA?*9XP603@@#lFZ6J`wrgJmpPjiAkkOmhCnf`DfR)}c`%?NmLm5|}6Co((W zvD6&k!w9WCS@cHICyk&l^P>)#V>;&$hGiJVGhJ@y+z#CHI$-DjBJKr*U#LrVD>O_C z-2{dv-$sg$%gE1lITuo@;}wOCu4C??m}w<1qDX1vVnQ++Z_Z|2LddYRcxOw8n3ock zRkq6rKT&6QOS`@(_T?QC{*JJ8?pORm%9Yv7wH?x3MOeEwS9f4;C9Ic>*u_-PFJ%jw zuPcthB7!HDw4he?z$}ddtxVI1jasl;DYi;OX-jq55>DGIot6TvOhZ~iR9cFy(x88H z3Dh~YJ@kRtNVDQO>dBK&3|?k(6I?HBqqb?CPEnW@sV$PG!oxg!jdX}|IEv?wVOXz2 zARtYTVpm#fH2+&0`dZ6ULwH7x4HvR>d!H`4J8Hf>MVjd~fNQ&3#VHuz5hp@#Ol3nZ z)`wRKewP(?u0f8;%}_dd8GvQ~9=Mu8njYs`AlOmbh6nmJ_xyN2l{`{gF6};KqM^_s zy`_aY&N#%}?kohy8$At!E;fEG?Dn89bxC(?4|?RfTFdZ^LLX|AHF)NeJzIzxFIUgk zFqG|BW;>JA=gwGyUi#Ot2s!6B_y!W516 z)Jy^O1p40)OnZ6-c&IiJ^SAkEq(b)C8;tT8ifAG)Pxuhmpz#oL1bSrXPN|w<3j-B} zK4d#|M)l`FJyp)%h2^2gM}$AY79LVd!E%wG{vD9Ju@+=toAm5R-!3R^d{NTi(-^&!>}xLaXKdP zR17jGIUfv4K36A%KqrAV4DYv^F(gRTo8K~>yMYH{Jxu2Y)JoP0O2za#H-b!Ffrepu zc)o*rqj?e53par`^jU~b-Hec55qMf3h|Tr1PwLU2Zb5`K3!sp_1EIJN`?R+r5F6-q zZo@NqHJYMxJ3@(kFHis5DeaLx-a_XOh~rV6#5HXp56}2>+85iFa|a?6xMGofmwhJ% z-AXO26Yc_92{MZ8PrQ%Wm+L?n9h;tgna(|+JNE(vVntf}f#mm=3|XrDD&G$~$rpAu zuzrzfAxkz;w?pA;MDM5698QXNM9=>y`ias;3$QAch0#Y6=G=#Tql1C5XLO;q(aUt% z9H2H~ia$YS3AYK1>aJl=QWhLLc{3T0dM@lOY{Mfw;u2yiu5&*q&I16c2LW0sv89VS zExVGqS>-6}mks0X6`~+xJ&jHu zT!~QfuTZJ1IQ1BaYl*~k$fovrHDqE~3%Lr9k~Ul#j{i8~!Cp_`5kJ*(cH)^F-vx$z z5+OydJBa)gcma>|G#-)Ko}RGt3`Is0@bke;BG;8oJ4&aYn-NRtvl2z^eq;|mjp2T8 z74$@p7s3e7<)#*vH8P-mt5)RfLZ}%IXB_347O#}9XpAaXx49MLjT+?(btFevAmH{@xVRK&KyKyTa3@4Ld3qOB`y- zqhda@&ou6tk22LWUZ4X`CT9E{><3NbuG_v9$)|^-5zI|Zu}F!|$ljWfJ*9Kmm1)_V z5mOa0lU*ip{P|9@V;_LEsGo*Qxw&(WceB!s4?UU{@WfHG+o*!7C9Naryuq~5omev5 z3InD4(#cwHX*R>nj8@1+r%Ny%!kU2s&TfcljS<7NpF{YU{O5_^m-rdcsDCMDKsLr$ zj3b;HM_%>|h#C)KVX_dKw8CFpW+e3@h;({_9?oj(EnA38O9Og3i%I1|j>?m$QxSQe z8qXzmu=-SCGYCJb0|!qG6CtxXfudkYNLbEGh~7K`C@d0`9$M<^vS6eorj3r&QrgQF zDx{fuh2pRwR7rKAsf1|5+9;Vq(^-&9pc&FW1NPHQ=Z{D~6tikkvI)gB0;VVIxv5z(URkWR5R9_^wKLmiKBMgg1Nnn(V^Ecp z3m$CXU&`kZI@s17p2V`lN~lLAvN+K`nh>czHczbI!qYf`u9O589x!RLKv`gefl0JB z)H=+94zh&=&+deK40EXvvq=Uw5*BU|VhmCj#~68)C*CZ5fR zMZOoYoVS3Y6;8w>TIXT^h-b2fsOvk?%jB5fBbh7DI+3{=nK|A)MmcFb!ZWc@NP6bK6# z$}7|MI1fKWi=?#SN|=FR5iL^>(`YXdwBJQ^Y)oY{pUE)Wh^gjt=*L6_+10e4fSl%9 z44*uqbDl(W+T99AlQFO9yoWT{A;5kxuNvZiS5Ml9p~|N|gPzX&h?n-TU+qn>SdGv? zncmEyd5Kh$8t5a#%xmA60WG~Zw}RYh6wiVIXrWymz*p$-)9Z^R=^(TIn6q~iUR zc!Vh$sY1G9rEjv*T)!@{17+<4n}q#CE=EwzO)Uqhc{2VyqB;goXmI%apMURjpZntD)KfT8!ZX7iraJjm#)eEWS6 z6Vpux7R6jGeuTwkF3YJJQ5cBzRv0W$<@1*1)JCw5DZrRWiLkVBKH)@(w>|MZEbKo8 zR*C0l^o-7trYa9|#vlQQMnA#6W>WvI&)%eshHaTmL*U5H=SZ0FVXuMhfb|@ecRu3U zTu+#7zktX#8mSdOR3R9(d09o>m=*3H)^W0EHPXc5h#IL^X;_3UNE^K%O-DSa0Q6$G z9>HTZ@=5E3K8`a(cVWegu&0ScXc$(E0%%!QMC*sSgxde(JZZ*2ssudY8ZR6O-6r?0 zYA!%_??-i~&)591BXNi{0dcVZ>pOO=8+`P?e7~w3Px|xFUs-uo_gIM)wZhdQ6K9K@ z1{Ff*jF?3gMd`c|<-fZqdXH*Cw2wti$y7@|>=dcCRH&LpA-5jdxS|#)?U$f)>I*31 z{2c(@6s46d-1NEGbzoAx*>pCv~YfEvI8c(pu7(XCcEM2C^H@~weND@JiY2zV*E0-9;CVI3h0Pg z3UuUp;<_AwQ-D8`m9uITP5+-zBoG^Dalh?hSnB+Xw8I>O`f^2MM^~-DlTPJHynxvP z#j(-9(!`JQh8ehR;E1Zcy;1n9x_HnT`Qh|xWeiV82bpd_HE(F;RDJYL*N3Fpv1Oxw z%G3&Zcy_H&oh(OuOuRx7+$&JN&|U|@Sgp6c4sv{EEuEef`ncPrReK!w6KGwEgZG5j z6L)(G+->DvwSTdzty_D1uV$?u;2mG8N z9Luud_Pitut9t_(+@&@I6<&po9rGxTdotSMPn6ze{|65@He&4qBka4!lma!zJMB%&=B!)d530jGz zBJh^}{{fBqbW5Oj<)5@+5ewZSKY7F2>|bM-lbJ9Z$=vAF*G|z5)16H7f)h|(**6wd zy;$OWE!T9_9?_ZXDlHp+{a?$5HA(R-61rjLV;h|;DXH_f{B0HJ|Cw8;xP^*asElm?8g)j{$J-$e)<0+|D<*(-25enDpYP%$iAlP%@C)j>uqcRA)3>9@t2FgLj2Ku zt{i`r_(RXYCkZgU7=gdoDCN(|i_prV$sG(IWw?jo4-9+e5qBuVqZrO-xQL*VaI%>s zn!0q8$Wa(KRxBi-DD{V^0RE}_$Z<=hG?V9YLh5M~IgFU;gvm`EWD=HUMUP*DcHm0* zd8d3Wg_(fHW&aGDBTu>qd>?X5Q2!rcKcrE@_SEPNs*^IX2;|(;`mT-NAE`9l9{jKE9h>WXVFgJD!^o8Mp$Toch z6PDw{5m{Ma!mtG}JgxRS(6$+iS=$OkCwJ~V3PbJxTbv!b*t)7 zsdW;xkuKgC;bmd#k)$3iB51Spw_{;4K*>q(IkJTks<{k>coj%wilO#7D5TD>4kokO z(9lKwir-8=3i~OM4u%vEUSR@@AOgDgusX4=lxDGALIu1^o7mMl3prr{F+Xy^Xg!9* z#q*01o{cb>o@l%hoPxe67J!V`_#jKS|lRB@fn zqlky#A~jUv-G6^9H+ve_)=SUKK5Gl9nOV>q$0-dvuxz2^*d|tfTqsJb)Uy9fX?KG_ z>=P;twki!+o2w~|Nkcn=vG!O}gT`8>S~S)YNik@wRTy(Gg8)6&5;Y^sgH&WLG!Pzm zk0+TJcnRl$mjY_wC6;UtkB1v?O5{3>w(?e)sDjJS(Bgl>4#o#*fh@%W4`g0vosfUdPs>(8K z7=mHk+<*fR3*#Y`4C5ac%dRHvkBtP>!F0qP)*;h=R03xSV46QQi*NFV{C20F`K2Vu zC+#XcD`QB|AAxrtg{guOEI6nl;w4H9_LKzu{i=ofl!!|mlEPJY=vFe4&GKC#2lYn@&x7UrTyHvDXCI%H? zt|Sq@>qS9IVh@g;EspV++$%F4v#)_q^OaNaL<^uhwS3b8w$3!5U~E|S99;TZsgYpA z{3ld!D>Xu8$F_n3gvdmgl9RZjG7G`39+OWS!eteAFjGd=LBv-`AnTf8%^Fm?_& zHmM%5r({)uPOKtel&(>En*wz$s@Y!fTGch=s|J%V^9^SQWcXuwS(ICdVkP|2>#=Jg zg${=xgXYG+!xIbrkSpP_Cm>qPZKI#H{M^Da-k=?sTNkqI0U1H>SQpZw@$fyxet3?; zU%Djew~okvG%ef-&2;FlMVhgQBIDj4(NcJ^%sLIlej4h~?jCl5)L5c|(jJNkvO+^Tq%fDYOrxWE6C%Aj(1Ou1r6c zIzY~bDu;`O5kyz9kPvrjHd3~pK;abW*}4cpzCc6))A<>Z(R5oB24lg)>ySj+qbW%0BDFX}$q;@Jqnl3>|ws4tRDC|&= zDOFICG|i*JX&wiO7rj-h+6bmew`e4dDulg8h}{#iOoyXhuITY@zvMe6rl?Fa^b?pQ9C{D)we!idQ#41|O6jz6Zo zXA~B=e9pJfjE>`zMM$P@VHC7&VcrjhAcvO}$)Z9oA! zGK}~kJnTu78jE2{gN+30-fTDzHWpGeojVO#?^ER+wvcAUdTxQizUI-0onsHc*%yGmh;@dnCnBcDBbO9K$6{Dq}cV0rRCN|6C<%5N#`? z-PMVR+JgPlWVX+ zaIM9~I;-0(R2K5o!Bm!f;ama%Q1}dOpyNqhlXsc;g3+3K2v)wo3+nQv2RL<^TCnko z&bH80;KRxbUCw-nKvSQBhX=cLaXh6x6|k+ez%4^=QyBm|uB0?>mxHwrm9C7f>SeA7 zuM#<`UgnC5HFU*Wi0QJ093>u5PiHVv;uxtT@em@aH7gp7I0WS^#2y|_iQ7xXx1@50 zU@9ei?VSeg-0>zF?@T6U07D<7n(cMzW}E1NMtpAuD+Tsk1`Ee}Ako7}gl$?K3dE{) zC>ZN&mxD*|!e$z`&P1(aL+FE{{%Pt(reO=H&0<>-#lbzO?A<~u-rF1RsiegqO})y? z!>}r*l4B)$dlNcZ{MVy-(s2^M9*4Haco0BmS%_#@>CotamzatO)BBbYaq|<(M`@hw z2m20T`|G|Qbqh?osv>4$BRU0))dzAz#(~Q4u!Qh zfJ3h0JPGBHM)fZ=+VXlfj-^EgNyi}qpRrCy73d4|Y97j+9_bTyi1(Xkth17P;0|jS zKv;5UK0?%hXwhi! zht|ZHgF5INhW!IdboLsBK1RW6H{)(u`$XA0%-L^Pq)%UJ|J!70FBl6wDwxG97k%Y1 zp?9`1^UG*pb;uX@TK|eV=QTwu6-E^)ov`{>6LQJXJW&r`zTZd{A??%1(CXD$D* z6~XP~CS>GccWgh2z{YAWW-T;Hb1>QR$GUZh{1fQ>E-VeT?baBZWnm>zHFiCVU!PuD zVQ!p$^IU7U4Fbc}v2=48mnA4G#=(0&b{%4B6E9@b>N!?WtlOm4YB2iQh(sg#%Jjg^ z0T5QD2^;_+nI>=m1kAG3Znh4T+UKckP={_Fhhb*;irUynVW#1?&qNH_RloC}JQnjC zY}2k;4N2Sk6erg+Ub5yC#!Hjf&t19Q#=OLDZ=i%>dm}v}_BoW%t+J&F5fd1?o9S7A zSptT;SSwL6EE7>hA^)W{hr}huBoJyr{xOHk>h-NxKjSX>kBPNQ;^rW~w5vzqkbkBZ1Ko{*uCgjJta- ztE+=I`Y<&qs*anOK9>N=@u~L>A|9WEX@KA7V59`Z(TX3p?{JR_w@QizJS}-ynCcF4 z(BojM6K{Gvg`B)$uTut$_JIABI5EIiD;#7^Z`U{HyU7Cn0?RAu&3Te+sc$DZn0WXr zLEDKcP7b5OJc$s$&QRcS!>ykuA0(&1=PtY|dMwwA6wgw;baE02n$niu5-D&YQ;ekk z#F==@#(f}Mgw~^W6`%xPxKW9{{HAb+?_jJJXa1WHyag62h4!V;0F95@-chjSDASD|_(iaR{AGB;-~DrM6GGT@LZ~z^q;t(XwXh`WqqZvcD0c z@=Ht%7g#a8FikT;Sd<1_RlwS=usRIu$@i!ok4ltUXIR7>#8>H@ZAew~sE3c=m4W%} zoo~GaJjscuXSIK?4z4)(nTB-Y{8j@ zLZN(>RUUjU59w49YHlhl2&S_?nX(T${h%oAqR^1(tS2eKP*Am^g6ycFV7Bu7HHd2J))ta{^t4ML54;rf;PS?O`RNyXL z;P}u`7gfdq2uw#)FNjDp6yffwpg2_g3j?%}CdHg@Zn{QkTax^MUDT^xR5fKd9QB^V z*8jvG>hNTDp!DYCLsYe_n~ytC+~YtS9*MI;c$jz@e;W{(MokJ~`qBN3^!h5f0ft*k zWldg8A@ZZ-EfgXjOYWu+&8L!kDMY1C{)<9Xh(aEs3)j+ET)6fOK;G=-?lZzpq|Qqo zN1j-sVt#xsjHBnrBYt&$d>0CoSxt`0>Nz`^=suF3=w{zfP}yvw2GBmy9i1geD?%|2 zp6IGMf{kGzJ>6XdKWgt6gJR+=HQ$|;o{YAxMcL8Qts@g)_nXi{JAqoGxiC}lBr3Mq zOgdQiyX>tbl~5e7r_t|Z%X-A(@9MbuD^ilbl$8D+2M(v0-vyD}ish7(O{btJ(KgId zG1a8WDh%zC<=cc1t>;mYKMB!#J_S`D0T-a-!HuBs6%tI``PK^rE1IB)c5t-hR=0EaF`iq)n z<@lOLu@a1w_feLzEA z7RFIaYR4;Sx}hX77tvSSaL&W|SY_o-HEa`6)2DPPmAsN#PntmcQP|5@Wn|%IRYI2% zcBRsy0C%GRxVdlN!v(Pvj-mNp!mG@ZDz}L%KRD&asR5NT5zrqoB!u6u9-7I6Nbv#b zEJ{@tS;cYS8MGfw@!Bx6;s{yqG<6X@2dGcE?v*W6@1|3Og3@Ol@h(COIS#(qnB_lF zP|1%#rH7hJW802@vV}Z`PD?4jutJ?$2&{w-#EaFb zb5X1H0;D74enK{Brr@LjpXj^|)rHIAlFwo__e#*r<{-Lm>~4B>M)VrTqp%V_ z)9JAvLqOV}BOZNt=wdu+IyMx=H0kV&UI~LPl5d5MXI*Xrl|J|q!e;a^j<*05{k4~c z2-bW|-=?K9K}m{DUqQ2?{s?tmWCD7U5$H*lN=H|*O$U4AeCS6aaB+sPtFY%z_CGY+ z{?NAF{+qQxB9dUnPnJC8Fx9uN_?-iq@0dK$M@P+=ILe^8Jbti|IC)^zfU4R7wbj%} z@a4W`fTtgZci}J~eS+urgAtz5lx$qF1bYfXypL%~H>^G?j-Da@1DDPNtz!Jq6EHT3 zAo{MQU4V~TMqfVTABIiinEBfSKG4OFMlE$#l>15eqqct){xHW7EAi(=7=`6;X%LU% z!T$7)KEF?KDV`SosLvywsh@s4UHGH)xGjU(EB!2SYv}3Tme`(8a9Wpm?=E6WAEN&~ z@BXfqI5(eQcZQ#Iq40%Fzl~v4m!dwFXzg-6(wcei6#B(&wbM%c;>+@BC6?G&`WL|F ze1hW=1ebIt_!sdv0~!t{X_Iq^a%qqIyUq}=R#3j*luZVAb9wo|T=8S>sXZ+bf>xGz zD3>&h^`soDdd%yZD^j_kl3cO4O9&F4XPJ*M{E*>S;xEu-Um5B1c2|M}@<^*ED`rM5 z@vQ$ZC0oQ-U4^()=X)OV^^4bfQA~FQ#XPaFe4r(El#o8&3gTXoOWai+f)7_yoV@bC zK!-C2ebvt|o)|#%SGp5i%lU5cPXjj)`Kn*8c&_VL{qUtwNb?IX^vM;kK~KN}gj z^us0ve$?Ww!?VtsQmQZm^gzy((vjdu=FRR&JQvS6^Tbhur<6_r7DB2#@l@HA(gt`? zF=ICXE5?`LdN6j3K{11P<8v)Ggf8cFxdKyYq??%_UapwM*u-+e3Iw&yJh8pkl+uTB zIbw-e2Q062O6f|xIf_vS*m(n|lrBI!+yw3N#NVr@l)iyC2yYkLz&*4t=~*S7;h23Y zNM@DT#XIv4_oEUG5udWmJD4{H7%hiy1~!S_&oB&Nfe2v}g~`~^ZVGcVwo~&wuu+~E z30)>2rr$7n=7~2D^K^W{xeH>Vzw%RllVN4TqMZA5U{s16asvzT`*>R|$~*#_COSBx-6EMr}Si>%~`6^va{pfKvY@fL&M!1FH@5+9Uu&?}j zz`eb01}vz!9q>`>ZosemJ^=V<4x9ZbymjCsfW^fm=ivxJDW3qPXZbULTl!F{`zk5s z_i=(PdCvo$7a|z$`3kg}IA{;T4TXOJ^p?K^cvAWMfR&Q8S{WdjgR7`4y%?^np>O;T zW%|b0CkQt)EF3^FSN11(wL$Q8hFiR(!}FfIeQ8UcZ+-5wTTm|4KIfIK z)nmm^_-e&FuFaS(EbT|yy4hmil~V1zpCEXzKOd5nw1tDi2w&W@6!1=lZ@DP1{20Lr zJ6k;QCcnscfA7i^kf&2h7 z+cz|JLos0=shDDWx2ye!h(oy;8-ZQtA1dk@TPL<)yMLItTJc!sq2eyal+5AcWySNZ zbl2fd#@jmG>4oqG@r}mb>}lY9T=rIa`im@_s&-+FEJ0X=u`S-dJ#X@l5TiAAM$Sp# zP1M-=Ik$l~U1Ohw@Ae-qmTK&?e8Sdf?8pkjF4fqX3BqpG*t>%Wds1VYU4;EbW5Ez% zUuZ0nLzv_W-Qpb-A*@(qbE^oe(%9-6!p3Oq&NyLnH1=*SVJkKEH`Z*U#=;zPtH$1l zQOtWZb`JBN*O=QTUYo}1e1!c=W1~5yzmlxG#hb&ta*Z`JHdtfdu%44NwyiHoS*Wpx zIEPa;wyc177i#RfE`;5nu|`h!h{pDs#Ct7`u?0WY*anvQAC29?HJ0C3={bV!Vr%T% zJ|ty?#%^V;XKHMoMZ6O=mXw68)!1iTx0h>dZ+GI|uCX~>V^3@Bv;gtm(%4U2zONJ} zR>$uLuZ|n*W^qq!r@v0TrLj}{z3Lw&g8fMA&ElheZ~I4!$&9V@#)EsY|GAQ}^J6Cvy*jom(I zr<^NRYwQQ{tehv#)!1Up8Rv`NY3%92FUtkuMvYw+-6QM8{TiEAohKHHw>9>5@NL;3 zKG)bM$h}dRHKf^YU~6PowCru|F2%0gGvD7I-I$AsXw^trXaJjomXa54#sf zXRtkTxoFVXko^5}rC6)6<7$de6wZ;mn_sb@6o5H-8=H4Ms5f5pe3m-Q; zMeNqtj=`VEQ^gw^``MKzP7@z8wt;=3MSP(!@7sO1n=QhwrP6NjerXf7n6Y)@^OC$k zi|`I49%03S(?z!o)+=y^xP&npWvT;biu)8M23d81jp7@HdHW40@oW@7Yb+M2gFkm2 zL^3yeFJ)|q!bD@~IHX&tdAVgDV8yppV>7!Ewo7A+^Ckz*7O!ZmIYii7jI9%AMd}c9 z0QQDR>l+w5M`JA&GZ6DG#@2h+c`k9CBmShZzxLT~o+JLHv5(_~^`NaDvCdmnvlAG- zoKG@G)`Z;Wh$fBA>pdrMu6SsO;@w!;#XL{EuCbBb>jUSD{TXa&-~#c5#$?ZA;6kyF z_qNuFZT?;6g~Bt8rFaJnIt4s>$B**c8fyjin#LyPZ3tW}792{v^`gpqao`g1n8xm? zxj1mCh!0oko-e+@yj(0`Y;*DZ6;}p+Cl)fcTf}7^-nnYZVAZZG#A`a;#6X_7Qq*CG zjdK62>@nji@tDTWE4e0cwOBcVcwgRs7%-7g!ka@dUrLn&=wu!Ng-a{DMp?PN- z6mys6-Ot!78haMK;_c!s6;r&~V@}`?;^NV)i%8jX0(XczGE=L2_&KWpqkb57tc zF?@`QDXO0j+%0BmY!G7JBi3rH-1U6mUh##-uBdu7aGxk2tI}1w-V8h-CTZ;2U|Zlp zai7LM?4O6V|9*{a?Qe;PMfo_D?q$bq7;xWcHiul0W0*{H8 zHIHigaq*tU=I6`_JRyG8*k+Vyr|33bOV|O$5g~m3)f=`O2N2r+Fjh*sI zal6K*Bj!_LpT^Ga|7PGRv2+5(eAf3FdYh-kO2#&L|32Un*VBSNaX`FtYl-(KjXl%v z?}4Yq8wxY_ak_6+I`Kr0E8I^D_e4s!0oXTzXGKv4`!VpG=$XNc;EUpL#-26$=GKWn zigAkP-52%;|0vGVSaq0qn>2P|EDyW~6ef1XEbyMpU#a)c87yBY* z!98NYB;u_XKLGo)xQnrM;?SO!cvHNlv667#;G1IhWQw^CpS9U3-x8;4EH`(jd|S`_ z)p)d5yvV#Q-pi~6=0P7Yrdr(I4n5dj@dfjq6;#?^#(ZoF<<~jyPm1TII@&At>6m2s zUrHG}m84Maa{_zCOoe&>WnJQWN6gb$5&F7!#4?Tj+~Wga7i(-ZdbfAPeT-c$9_~>S zd`CQ|c#t_f_^$Y81{)iEPn1mK{J8(zFM4Z?`p^C1P>oRz`^9vPQ4ae>BV)Vk9OL)y z{o*plls!Kbzt3QkgCB}pGT4mZN8(k5dFv|o;@|UlQ)7!Ni-5hav5!1^#oxpy8av=A z0`|4WKJm>Bej>NC%zG%Ww15De~Rxj*jd4E#e!qfx@-!5FCJ2u z_X*ct@uPT>v3251oc8=E!n0Lrf9!pE@JBIHV;_L`Z?RNkd!X6B#ea@vnK(k)@BX(4 z%u!g0^@;l@(M@CdgRco55c?QgCtm1rdGKfPMFzVeD2&tRs{EP<-WoKF3pDmI_Fqin zstk5t&}H1Jv60;$3tGlQ8ar{ouAtXwnx~`;E4A=%)SRoapK$KsGq!20PxY>#&nQ2h zVt#B4vPwT`x57ro0F!rpVK4h@bbrI_V3ldhrSekbPV;jT?o`YlF(jnc09n$UW zz7VaC1;hFw2n)Kb!HgZB$>LC&GZO2$-)4mF-^B;FQp z@t_j$-qqMQ0}1<4V+)v9d?HH``2{=Wp~fj1i}WhX8E$N2>{2nZpij;SOUAg$dg4InMY_W3(4^oZ&i|q)_`?nRA>$*BNR3cV_p0 z8udo-6vEbt8-Xn}MriE3?yGYa8Pgg2*eJnlZLx8*!hAHBT5KGrF`7#)HX0b)=>4LY zVlHQFzcB)9yv4>kh55d$suK;yMT{w38am|AXgt8Yk2!}%;|YyX4vhwBX|iXXZ=|u^ z#v1=ld6MSsHdg!3$f46*in-fx{O9F39lU3yv0LRX8sN!vwrhxzV!8=Byn@0b{S>~w zABCsqP?#vDret$_1b)d?l;LHpWj8wQr}*yw2Wih5MEVfKcS@0OcG$#O5#_ZJIsR|- zKe%-JYe)hP#*j;R2OA%h|{9yCRaQ!mFYb{u@dm#al>aig(ybe?Zs}xsl)E_6Sm{o1woc9tL!Y zuGm#ZSwL4%3MHqN{qW#i9_AX~1CQjwcAd=uJZ@ZiMFe zcTrHkiZ0pyY04AeN^w{<#gVLS&vJ>FW5Nnjs=1zYS~^*$aJFZvym|yBtQ(af>t?7gbp9ZaFTRKA$8uzaPV>T^_h zDh_W^o2;$s303$8_BxV}+Yc;2_WEuv7EZWs{!j44}LXM)P}JNmOK zk+OgaXG0}T`4w3s-S?7}=QoeVGf^)cwTxxX#>VD2t%Wvb`= z2<-(u3HLn8XR;~xRZ?#@Cq`vFxO9q=;(lfa*BViz_!HZ|hQk5$Z18PBml(tTc32)s zBPd0Gmb{uPK{4pA%qioZI1t?94$y8PY>1NR7NjaLHb$2VMPHC@ecD8rEqConvU z;js+s0gG_{M)A)Dv><19Ot!kg4t8`O;0%Bdy+|3$J%o!~1 z7Br8)Tb%5w1Gid^5v$~MIT6qooCf^xTbvhsYuyxtdMXZ!TQR{*Z@Z-e}oD;~tZPPD7$d88^!yaKDx zt&O|IIgs2AbufIXne-LPbym<0LfgYwPb&Bjc~*^2Po;yVCmgdYGbOMr@6 zc+99aCigB9dyE3CrS=$;^7n#HGx2JJ=Er*svf(7y=V@b)Q4el!w$eP-bEt7^!F!PZ zd1b*x z@&!J%enC*Jy$#D;DhcLs_!#Z{A{C1T=r_KA>CpR1S`_^|Q*L711h#PQF(ebmG0rpp))Z2Ay!PGU#M`l|d)ks|-5HUS-gk^(uqT zs#h6wM!m|Qv*}d^ok_1U=q#EbrJ}RvRR*0o6QnqF#=Od))8thKog%L?==6BF*xg;2 ztL5vZUh_KR?LJ-1Rcx!fc?azUuE!U+9@Si|`B_A@y23IK{aUX`Y-vkUqJ~4lgLt=ZyexoV+57RIoEcq6c zmn#2berk~ad}=&cB3(X{Bs?WwC@FC5F-Ah?9Y$PMyQ&RZrS33n_g<{!_EwB>H5x4? zGhAP@N0Emg>pIuifz{)=@bIOsbw;kS67YU6!5s|Upqy*mReZARI+lE$v8>Nt*x^j` z64wuqUx(YXM-*P+A`iI{@Qm;uIDC!VVbJO34ueiLuQQIt3F031jU9+-;TEid%WL0q z;bv?8^J0~_wcwwK`AzUgz$VDQ&Umnp;8HW>zRs8m_>}R*;JvsBi?Tq%$+dmm7jT_k zAlB64{=M;~s|GQXIYR+oLfT954_>_GS}hl&bwe8Wcx8zuH`!{l`v-9|`oq;yxUO(t zDGVR_B|+yB{p9}qTOi@7;3ck+?B`_9JjkD0LNG4Z$&vDJ?)~nO@*DRjZt{majG-o# zXr%eO(h6&&q+QyPl3Lc4(3Z}o_f{NkP2l!5K^EYQW`fKeSO@sWNFD4s*Cd_K??v#< z{5oO%!S8%qF>E=U1} z6Q_Ib<2JRG^V)%)f2(H)PUUX^{Gj9p&t_~36q#Ujp;L)K2uW6*^*+; zlN57-q?n5(<+W7a?ybVx0^M?}aQD9tU{}niszimD3>XtL0BgkxK^K+(w2Qa7TWN_ala;krKVTm_`dIrm-Hdw?W(u40}roFJ|~G z!$s!xL@_yzi{&uv?PdzY3X9}C!_dg3a8HIK8P+qrp%=w>RS+D*@CJq-DN1ja#_%JC zz56hQVfg@(S;uez!?g^zF?^EY`wT@j#VoHSh%d#uc6sOEEsr+wv*>L&MvHNS@v`xw z5tWCbm7OCWkzdO1WszBK#?2aYm^sFrZQg0VXZl=yTq9f)T?<@mT<5#4b?tV&?E2It z+-`TNyO(>cd!~Dl`%L#8?nm5DxnFnhb${u`^?567#jHcEan_O6bZfSCytUXm-}-~~ zxaIX!dM@_d?RnMnhR1_>pck`4KW?@L@#X6rF#zv;)L>RP0`CHh#oTWkYJRdP#K;=K zky|m|iYUR?V7lSPaCg*S58Rt7$G?u!SF98<^lNd^3`wgY;dFS$TFfFhV7IKvy*US; za_M;);Bz@w0e%s_7Vyh_f>SF9ZcGr|KZxLEE`oU>f?ab64vi3;Uq!IBhTy$%g8OR; ze$Em~neujwC>LJmA1Ve*`?c2gzR& zAURQ%kYownB++M;{~2(0;oE?x^rtvydr8`(Ec4Gyu?7(RSPoxmQ22Rq)Yoz_`CsR^FP-91UM`~`tObs zJ=KfgSKa_tXx#>d0KXeZa50DPW|=`3#TSDkppRw`zoUpKhZj?QoyZo>F4tGZBy&d< z#c8KYv>)t=;opXH16JZ+@iNewJP6xZf6-Sn1AtMqOo-% z05}2T0sU*jlL3#!{Z@%p#8H5gF+xb(j6E7~syGI48os10!J7*>3;*JV#2uFTfai#M zz;p3$)Jky?cGe}{Bw7Nv8LLZ)uh*Ugc&S(pcp2V|lHzjoLsDFYdzx7FqCb*iEAC#> z7mHT|-Y8lC@4?%`Qrs)f0K5;U6H?rd+^}1Ww?(CR5H}Ph?mnFh_$)>&DW2o^*`5cK zSmRv;_#*O`;w9uS@s)?m0AIn4J&C(Hm|uxk0VP(sR|9^AoTd0&TnqRG-h-0jpW=GJ ze?b>1zQye}iLPM>pvSlkFkt)vFlgKfm}A@xm}}e%m~Y$Na(aqS2aCboLtR+QzGZ{fs?; zQR8*MnDGYSAmdHI!;QBA=NRum=3GFDv!r(sJ`PZd_hKNy3sb>Xyb0QPCwdr5Sn&D+wOuE8b`a1qm5$22$B-waP%-Pc)=Vb zcZsQn!Y9i)#uTHkImI~K>}GUz#YMTRn-Ry~>F#buxoeU<3;UM%4Ii;+{`@hGsg=v> zSC3v+pGqAve}EW1(>bYOMdN7=v+9>MH;h;~e}2snBL6b3qE2t9Upy_@kZMStT;J5_ zteCLk1c%a4f}!*0S9c<=T1;wOaZ+VkydsrrH`YrjfBCs{qly?%KAkOM^B$1R%9cT zmc$Ta#_Cj4!}6*LQ^kzwm_waR#+yH1Wi@(CeN(*{-_SI5;fW|0V~dGI0;aBLm|4G2 zQ0bbR8Z_pli7QTSNH$GavAAJH(@clrQIatYC)77DYa%q&5nbHQS)N+tB$qWVOl#I| z)Kt~@h7}FT#zo@P<;!N)Cn0hSKD#h=Wy1=pPR?RnV=~n=$pJS1giLVcV#S=08ojiB z#gc}_EFf9GB6Wh3Tn=)V1jJb}vI!prScp>1Sm`toiIkr`dD6`3Bd5$5 zH+A~tkuxVuoicxBTEYycIk~7|a(&aHrN`8#rZ+5iPDY}Y%?lgT`NAg=POVM>4nI28 zFncBPo9T>0_S5QYEN` zwmTC!+(G=2D`CLJqn9=!%jpehQ;QnX2o*$y$pVw=Q%&s{TUwzLR-hf}+8)&an>LJH zu~;;6?YHC88=U0ghUAonQzpRUQX`uvlFD4b088;tk^c{Np4^a1)h}t#N^)#+@)_jh z?BObOME#1z%NmYZipHV{;~TVc zYDYR(d&2USPO@ooV=4t19U~u6pUOB-J7;O9)X~X?`X*JH6c?0x0aiQ<&*+@RAhmQK zmz|!PUM9LOVpghUs?b>!EoV^!86%6nGTCqtjg`wtMB?&-uQ;5bhHW3VQR8*N#lz8W#~ZAgRjW& zIb+jOhWnT4JS0W#`bs&NVWyvF(! zY2pgv%xJ(6sirQA+Z_N?1ax(rEMwIfSw!6z{!d*d@*8_NXrRjF3;8@kN_-^Q z1Hy0{pQgBZfM{$ECS)lF7AD!Ipoav;87WNtNva#hOo3IP5u!vO_mUJTAdDQP7g>QM zGGFaZ79Lq_bL9h5X_1vrU1V}mjHW9IlCMq}v5EPp(IsmV79(nsoGh3_sWNpeKwzRy zuuDo$0g$0Yl_-EXJ2TuyIr3qg$i-kuNeBpSO*?3mZL-Zi)kYMvYFu)_BHK|6OofNp zvn-5LLV*$@cw%t@2UA4h6vrkvl*M4|TMIJ_N?BwO48VL$LKqetK!n<;rKBZcR&z$c zHdV$|s@1{ZS=?;Rt}RV9X=@aNeOm(tp1Ca0@EG+Bbs`KOGL_^w&}9-Smx!i%0 z;*>#gmLi6W*GpuwDuz2?ZdeMEa&53D;|Mz1>d3U?7wp3~A3#^a9pD zR5A|2pn~JAnZ>!eFsipz(?^wNx)osz`-ZYp|LCDH)yb z%=gI5O;j}xF{7p=D#Kb5T5heWrD)7zmQn$+(pX2qY-^##F_w%R?(*ES%Hz}F21|yGOH&=Z1}Y8?OtF@@!5B+o9S%#Wnoq3@n$zZ%AkFAZ zqq_1lu?BLvrE;4G=0qtp3pJT(BBo1u2zCh%)XtBA7F8wie1qIL!XdIn$zzJx@@QId zrqh-0f`ely=548fqZC+pcnUdzgfz<(PF{V7vXE9>1P$wi9RewbCyq6a7W>0<;9^0o zS>&ukgr-Mw4wWFxdL;oCkgF8y7$FwR7$;O&bac1^nCNnkVR6OFaGkF%SRtFtV>dPCDD9cM-rb$>qsO?hPc#`3P#qE;yzS8DY3{(!V^5qZl4^RhnWC= z7|#?NH?O3INMo6CA>A$kiH?$dry7$&#Q9i9E??-g`#uG%|JejCOdwRvoGob>WO+hjK{38r<+KK`gACc`%4Q4oIx;D3B9o@r$+Iffm0FT7da5P6 z1B=*#nrFy_MW+zPmIW-PpjFa1g6fIn7GN-rlLbqP5lwDMg}1y1}mDy$skyp zGyj|F0u+=SO0$HtJbQ70J57nmo2FI0Sj(t(a1| zO$gCcm&POE!vWiQKA00UKB~jy{2p*g76###W17M_f@-r8{HXbEiIVZkcd5V@cx~B+ z6(2)Ngzqz9ikG&?1Zmx;?(a~emA-TX^C70}tqFr1_TnP9^r2SlvB^7c+@45v*kMMH z;~g4~EdpURQ-5L|M3LwK*2^!nRL4n&B{X`WnnZa z5Xd#{%EY=92-;37{DhJ$YY`)nJATwSW(DSCqfwwjYsiV3L~C#CI$?W^%Ym9Q#$hQ^ zWBE2LD%B{o9G{O=5XLb$$*fsNz7y+ykb#aL za>f&1N%&c}++?og^AGd6^95jv-J>X6y-J+AhvAgm3@l9j0uzkLWs=Q+Qr}evdq_FU zm<-R8)xm-!Kd6m$2m>hdmYrwFr{++fl76F(O|}$)UHAg|Flf_U)*|RSX*CI}rwE1w z*%U0uBpiMYtHmMYVG#pYgaanQRQ4;&Zb~tc!+545LaW{2ZgML@i7ir)X(=hJZo3eR zfR%T-6v;=QIbhODQ8Y`bfl1~8YU-vk1%)Q%{jHpc!(ONT1EOHYIrC1X0DkaXDHLw^vsHmMg z6}XWuOl4d4%wXpx83vM+#4I!^Op=X#&HIYs&U8w!OkPS7B4&YLnt|uWLDM1$mIq8R zQ{+t4>XDMyM}}b)ZpHKsT|#KUO4hGZl!l@rNo;&b2?ad6G!2k@Dc)WfPWph{S*k0V zm61Aw2D$~p<`A+yx7gGKceR3id|;@8L&DCqrU28Qbh01B{eNW4{n3CxKKhcG5I zYe`y>H4C$pnw+Je%aIqyFfGAF@PG{>xXxPv%#zU2av{LkB3D3`ETk-=5j9p5EYz(rUWq@?rLykJFFxAOhq@0?eFeF(zLqoA} za^>Tj{gC|DoD5RzFbDGC0F~x-j>A1Fdl2AYhaTf*M|{2oeq=a3vYdjn!JS5%=}y+W z%2;v=X<3fqOl1%#jCaP`)ct-ZEHzjSWCE$SrMv6{jb!ccotajZPMbglykt~lS zC0!b()i$Ty>#dO_*C@MrZ)WtTjSPpHVa|FdJS^lqhBVTu!O0|oo$8=Ti$^ihRfF)^ z*A3{BXEI)@Zksy%CY$f!@c6)VR4bMzd6|%!(xCKIianW@!f1wjA!aJT=r53t3#q8N z5g}8ZZm*Vw`AKNYP^q9s7R$|(A=vJexRecNr;t!syz^{?!&3_l;FLUyTnko*Dp@h+orJRy1Z=!^&yC^_|S=42fW+L~6t`kdlb&0GXQP+`9_)lO)3}=fm zPB62|d63KsxfN{Jmjf6V)U>+J@3Bdz&P19fnN`9ophXSYU)gL1=3P}CmRBtgCX_*1xfB^rC{yjSvHB2^KJQs#f5IgOJLt&s!$;}N03kgQ}R}s73~pk zx8jHr4yRBhYN<3F{Bn!dUSql)QxP_UZqYJsIo8N*@hHaog$)CjQ#vCi$EbGLmTWsg zn9BPBo)8*3Htfo=A;t_{uDh7bxySjgr@*)1YO`3GMMGW+yu4UlGBZH!E$6$Aic$g{ zIR#W)G0p_Yt<29@bBM2LLF2c5y2#f zK=mXtK;iAJBQ=Yk8?0W4wrU_-($ral-K_JLJErT&B%1}&}Zb5nPT?P@>;Zw;WCspd!Ychya#dauU5NnJF1gfEkJ3;xd zlyh1oyl5rO67a=wBhozrYUL=yDMw_M$%_xt8j8*&ds0bYC!FM63k8boO1Q)=tkSAr zQ}UsV%p(QHu+umrU+8dGp4FiwDg5(*aAl)_ctpQUtzUVV3?3nieLHYg!j(UT?T^tz33XJgFiWyFxtbz%I|T>0SRo|~ zEpf3aB7twBQz;{#G1Tm|T~CK4*)O-+S&-TwTXEDK>Dal)s@qzmM9_N_rsobAJv4j3 zXv1?Y3s^FcwMvd5|IPv$YdDzzp#P8%XkcaITsK~<4T6`-j!onQiV*YMp~u{*llEdAU##W z?O}46@F;1m62Uo<ehgp8A-9ZlMp~6B2qZg7?FIpZEro7zVoo+K$P-~C;w&k9 zmc#>qNu@gUBv8G}6w9^qoS{Ed+b1ss` zRpV2cHO~A3kk}MVLc<+AM!ZRK^01%{$14hx@lLdY0G5a+TSo#G3s@4uDR`bW7Wp$# zM=qXBwc~?TB%VtxLJi5l3Kb>f;bHaqU>b=0c)|x|T%aN!Sc?(DIZnU}5Vi`!nEK#J zWc5;+nk`EMZ8l)F2qk#3*MWc3Vj-JF;}D2qw3S@>KLhS zZ1@zi9;pRuLVd8_vPbgkho!pitxiuOI9m*Qvsus7>^Jni<@RbC2u|lRUJ#FIB$B@6 z+9#RG0^B&r0Zoy0do|RQDVi7R=*#i9S4RTl%`IDSn>DdFz}iDrn>z$xiTC)CA%~h zGDlLE&uAqmvn_8^-==})V(@@)sN5L?zBoO!Sav-vo|?Ux2A+^q&`L$7y%d(G%6Xyi z_GJ6kn5jpGu^ASR&4E+2-m0Iadh>R;*}ZY~q21Gtm#uDD&V{@FIgYWARTtwT#+g?H z?pYGFCVX(!vsXjh?;>b%4Y76rV$*T&lHgy0u~`5PK)RdT!23cbJ@U$=FYa$b{9z_S#z}FcA=d}38Z#A7+iuhp;XFA zHZGL1jdag7Sl$c<<;p7W7JY@YEDs$*CuJl3qq3txU0&Ho2p`PU)MAt5}}TQ=x<`Y$QB?k z`Uvy`@CM>q6|`UNAt8{r&~4m=Mj)r$52{2EZIB&(36n^n5#{1x25;!TiWg?2Lyucg zvlV${+myIwss*!2qTU4VlRlz6q+v~L9CI7p#Q1Fjl;d@wCp>*Clsg|>gjF3#Scp^P zL1AnBpqlLwd`UXknl?8Nzt~Kv zT6`p8>ojnl%K*_w+7~CmBuT=E?c5II$lcnoF#2izZijz>FBHkqb0_l9;3YNCQ5obM;}noj zIq-^Kq>X38yd$o2bg#X3OtP}5iHFLz2TqP{x>Tb(7E(K;j^uX9RPb8wVy)>6TI6_p zgk}h0AI_h4h{?)|rmI{xzTAVfsStq-boqFu;7Dl+QpvXeyrdR`uwe((Le4EGuEP@= zdDck^om4kzffO~+m&VJa5e)`!f|ixDpYn$KCdLt>v22IVBpAoh z*C>=UP{|3H{JoBogUF$ok667&)j!~_Z6 zz=%JTF^)5UGL2Tx+U5hYG+F}ZYrUyi#!>h&7>qOYdXbt$E%woRu^^fnY6#W(p;1kY zfS#uqe3}@`<`Gj^g25L=5C9eP1gbwIB!rSjiIl5sj!4u52|iS<4>Ia?J_a8x zs?+*->ovx*JwAkVvDU{288u=^GmWXM zz)0egRt)v>p@^tu5wKHl(jkci7|2K_G@@4PtJi=m>O#F<8wx)4As&ZP|B%dv5~GZL z3_88oN&XS3oM@piG^H4T*0z)Y&`tMsXD@>W4D1-@EU84Bn5%xPeMM7Wv9^zEKo_kOFeUt zdZa%MKBzD@Hp_iU+yU?fK(7VEjs%u_F;*PG=n)X1G6NvPj08%Rd+-P(#D^$@ocYMw zfZ-$NErwhZm-v4JdWCxVh=EG1Gmw-~o%}lhJOG%|jRPoMFOUR*YVfnH%%Jx|MkbW# zZ5j`Rh(@>pt-t^%ZxUGEobfn>5y}vit;2|cicAjFdvih`` z(5}*u&o>00|pmYu}6!3Qb@Xb4l;F`$C> z$7F~RR|RPiL2CIr2&4~`I3|@Kk*UjaMO`8UbxESgc?CH^2aht20+WoRxS}ji0%HTq zzTj;DjGChL<+{#TcAPQX%tq338mh!CpI7hC7~MST>p5jB@Y)VRS0><=UA#zEgD=EK zro~2L^2QCNqM$$W$Cy1YeR^e8_(SU(z4TYZ@6P{q@AvZ`zOJ28@Zhke3tGM0@7rac z9{*zZsbxod1+~#U;qT~wt!(kkJ*TGz%zsZmb$I9V-3<#aczu8Ne4DqcE}y@eoiVJz z!rd<}?KD2K+j?ua&_6zjagDc!oxA$LgiVe1JQdR+12Ox=UZ`N9tWSW`>dXM zRSpPrGs!n;b~8!$2*gB%o9SOSlk`wrjE!Fo)6JAxj9Uw`up`el{$nzG_qO!R>e(x@ zPmd_8Il50vF~0NX&@RdK<0yz$7u2;xogWB|tu< zv7zzS=%81&Bdr+)cG1^9`Z@woAAF)Ia-6VQ(_c?&5PA_5 z45l#2CS@o?Vk!mBAteu=0svh2GzPG|4FUm_db$B4PNIw;8;~>#pAdXH>AWG61l>MB@xdgTYrI{XwIvkw6nVLi}5c6e&q3h(3k}WT+sC*;g2MqS0(DTh0Py%Z>3E z`Udtb8sljwbt1C?1^_q=tBU=?6p})`21G$@G-=PW5oL3-k{^?M}sJI5b6RGP&J<+sA}}SiROjDppO~LU_Og- z;>*aeW(=hXhuDEkm?wx+frF_VQhf!vC5(^MBx!zzQG>-o0mT9f0`sW0JO<*EP&BD4 z@J_=C0{4y+z+enu@}V&X@Q&GQ3;_AmG~Qy~!b!xzXvTS}0IZyZ?2MmwKd(Rg(t!&lb{rXYflJ^+1KsFHmjVc*Bu_bJNOjRkij7&w>(%X~UXJ*xxa zR7%KeNFaq?mTiL}*%@g;=phQ>@2oS`ni_7xvqdI$6_L}#4^msRagZlK6#Tn~M~3$@ z_v+p&+>B*2-UjIg2#>c;iHr&xnVuY;*+UTgM8V5y3mcV&!#8*tWOzzKx^n$hH(9?= zfr3Yi42_i}>6UCd;S@k+OiGF=Y5-nKS^crGaGXdlaE9af8}2T_<4-sgm5l?>>{&7C z0av{=ix5wQ&UkO*hX*ddNgR3-pMn|)<XjF+{vs@zdwsrE5I@bn-k`nsYm=sr zTxzpq;eBoQepcN5!tr@MC+vA4`n>^9_j&eB?|y4%4jeMp|EJ+$0Z}6#Uu;fazN>89 z3vGk%NqA^**728pvWs6?o!z?aV>yjNSLNu9;nRMaUpC!|_cnZq@tO?MyF+4&U>%t8 zM!_bqA@0Qu>hylX&+*#{I(0A7o<_bO(Ged(pZOym2b1DcRR%M1- zZS|u`o-XLWfHL*pLzyBu>r|h77^L7IBlX;*s>zHIKw7V!Cuic#&zn5}R0HbQX!S@| z^&@A?fMnRei-f%D@~N{AfUusut5Q|HcRi0x(QvP4N2n;tZF{q`XGVdtr7UP~^;Rd)CIDHznor$O-$Q6`0%>}EnqM91t7lIi>W8TMZdEMY?d~TH>0HIlPouR(Ws`2NvicuLOGPD_w^vC`L6i6Ws<+iCOhh#q zw^vR5j-@?v`^>8U$+TxtNxh`L<{<;m!$71+X}gjR+`a^)w<%MeNNL>C$hg`0wD(Zi zZFYCf%F<9-?MKwk{ihh^-X0NF&wqq=cceA-XERijeS4zn$)cNA;}jxMQN2u=TS*gD zq#jpG0@~XgYM%7h)x8!}FyTMJpt>q>;$_aa%^KNeBK=zZ+}fi+TdxVGCdX?-s~%lj z2gJ9js%g}!(>Xt5;(msT()oFpmr%)Vb}S*e^#Qi8Zl66jKg0Ip?X#!;$JmBqkyJ0^ zsb=Ti`n=iuKwfZrGJk92)H~G=vt2`l^|FC)-WqiizYEr)1MAZQ&(%WpBW-xsv~cG? zN8^5~EdwaTaB^^%I!-gs=xCa1ahh`Ix)4*o%~Xg>=S{9Wi_L_)8%^?qX5vicfl3n| zTsKK~8=3GF9)Dq!(^OdObeZV6KRn@vvIV6ki^)Zm(6e^kOm>HR9QDy9!Pab3Cgm%@ z^Nc2YjypOa!P9DZU^EYp;5)-bBfFc)gh$qKCzHuaZ`}}k@u%ZVE=#T{%VM+HU8X$T z-E7LVyYhgwBc901>&WOub2`dx=_rP~m1AVHQc3|L)g%8Mb>*j~vAf7Rie26EWaAbE z6H(*Dz0i2{RN}M3EU^V=d_K=5@d@pp7CA$VNU@uwXO*cx(0&v5LYd^paZT*GO;o|K zi0wHtrBW+yKP<*$cP5ve+9BZ*TcNMvhT}J_Q3AV^#3bLlAU1~s447@`5BVwv!hlkY zB!zgXG3>@xk{bsjkv*p>i-kDBO}g9}Y_o^S$VpUiPZi!$Kp5<%Oeuqttfp~{UTdZ`&1>_CfQ)w65dgQUVOmqR9t6HWOwKSTVM6K>B zKh-F;I6FU^bt>aN7zjow(l0ht-si%~QkS5=Br&kE>oio_`k8POs-3Qu#6ATLGpqcj z8df+Ufu!4%jSVhaE`tQ~C!E0+-q&)UhC)_UBBVhKW;)mnxMGVslJU^0*n~gMTpeRm zPq2bq43-n9WeV6yaQ5c3>WG5if|RILa*IX+Rzna<@lHxVLl=M{=*n)UY29aZ7PUzJ z=VKxemzY%J>KJw-64Vr4cY&K~zcl_N@yNl`%uqf|N`TawWx?y2c$B)+hNr@vbq(yPxc3SgI6FTlAAJoO;2kMx z$s*~}6LnCCW_Fzy;RRtHvSI2ZX^m?9jJQb&n_X5ltPox0*;(|q+n5Y?!p%eld<4Lm zZ!dtJXZx`<#WS-nQzr#!MZ=D(U@}ntBe{Rxsb94KaKf7c_rM;Q>=fsxBN)U;w(@zS=ojt?nC#dr?<@-K{6*}T$EO{<|AER!8~zyk_>g-~oNx8r4EUFX z_`Vt0*%@Qf6Ec)7i40sDlaWmu6dBT8bs202*_oH2Y=YFhY`Q2rQ`mya;lqv^qe%EdM-ta_`yxWPyQ~?^T{Tb+rbW=lIKaK zrW;x(Dy@iz+|g-gqN&I&m%yYU8t;x(^NvPdTT!xuAQv{w+D{^sk70=cR>(GLl z_0+|eaO93<_)TtD=p?#>afn(@&-i7dX4=Lg`BdxYJx{ALIx+6RNo}0vmi}@WFNRB4 zspp9oa^F*|5anv?!+*w;(Rin~h^Msax%+H*66smc>OEF_e}zN7t!P~&-Vq#zagz?d zg+ubN*NMMqY|)C~jpt^DsZQKxNd{Qq+P+L8q)HIJ?o(Uh|A+m*&VjdEpoJQ|gTA80 zW^dmvvj@-qt)Zybtf**F3D9zlC`S65eZ9T98nl`gc#ZWiZ@;eIqE4*ntr2xA?lku| zH+6$FGW%*pVTEp`rc5xmaVw{5e5`bO%js?JoV_trU)3$^T*|R!yI)*U(WJs$p?lX{ zp?z_MRwLq^97*|oTf-lnT(Q1&3S<6#=7tJkq8CV*$|%x~(s>7IMx{jtnFGBM@d@(7 zJBI0^QfpY0bu!f7y|(%pnBv3#$FBLS!3rYf9G!HB%;PQ##&07>1jk z3X4psak1uBO&dn`H23Ikj_i%E9(N;3hZN+fxqRz?g|dcbf1=DkNS8c3b!22mb9)|b zWsA!%!W~bh__PF5LRw1Sfzb(ZVLi;TQDMC!qoN|)o7?ghh1A+2=~7*Dg?NWMheat3Q-g;Jh|)TNB(MTZ_}%jHm6759G~m=3|;-=icV2O;=231J^S4LnB(o= zn09C8!=KE!+{l%->gtnOkGN)@Z+A$Wy7%e}?`}$wj z=;pI#9$3-&uV4GV?H`f%^Vd-+Gwe;@wk=)%$4pE6BOQv4x@LT3ab|p&-lfk7Z4cky zQ#Y2pKgZ{lW3#&4b>d{}5f?81nKxnk?r-&Z-RDI(M%>Uw4jQrd=tYNqlWFnqpWXZW z)ZDX^mK6hIh9ir4thWzFr5DbMin?LuA?Cqy+^m`1U#ej0)Ty;qfE%&u#_Tc&5xwno z4a|NrO0AE(xL`m+Ttu9U*mj_^|F}QHFRa)!EG19(`+`fI-^n>RxoH2x=ihwz&+$K> z8eY}HUb1B4WUuHEv5w_^&bDazZsC1@7QOQE!B?IbtLt>vC#^0&xV3S!28;cFs|pNy z`n_4BC;ZT3TZ7))%P#z4%=cy8AzcdUJ} zD0-XNX-3Y#v@f6kSwH=5v!Oye?$?KAzt*IE=4St+A6@sI>G ziPC8=Y`}yqhxP^1M%va+qFH24%~A*d>{UgoIC-cjA7dU8e9 zM~RxtAN;S-R!xyf8d+P1M!uzDTJWd6*Ur=0*E)TYcx0vJ^{T|{S;2RPUmJAv{qHZm zzjRB75yiVcJJ`s(ap3BL=Fh!7F*$wC+2qud^A1&7s-^}l3t4liq3gFbqf5_s`Yr9~ zmix25{$l=Q1b!#4;j`X|o zcxdE3|DZggU3!18C4uZ&pv(E78_u8H|%)n&hCgV+ACC8g?V!_c>` zH2z80w|Vd<_uPm+F()w0>-9Lz@H>R3+HaiE)Amr_i>7ALoo4*FtsqB%aYTL1JgN0KOc1$F5W z*|Sg2uI4Cn?>;?xn!_S{H) ztUl7T)3iU#9x+7+Ba>_ThpJ(ztp;7_tis>mkiDPqjV(*s&n(KdPve)mK zabB_O4ljAG{5kDCe-8PkMYz|7)Ikw*|0q4#%JjR}_0E%yTEU$yKd~SD;Od3RH9J{;TE1k9@S=89(zx`R70F`mxvQ z{TT^gY}y#}b*H=~E!I>yoTINcU3B)Zo{JnSKAAGH)zpLsXGI4ecHZOldhW=1RWIj9 zeAe9m#sXL8GgBhcPc=4=`~B#=%)dU^KQS>f^|g*cX9t)+a&!*pbjSO>Q({(hk9p!y zWwiIKjFiz8ow|5+e|6}I;aT4v4a>Zm5cBN@AK}-;%IA*UGq*$9`TN%o`7!aM-upg+5u_Dfql?(AxFD%WL6=0WC!6>%$KXWvzS zU8cyp1EQS;$!1zCUDjIAVuQ_4%5of9EV_PLjK9&21`LfCV6CaYG@>xB&z&CT zXYj;R3qzA04|{WCRD8$}0Zm#6<4^Uxr_F~?zwi6QEW_O4g@&M%nCYDdKkGR1Q^A4V z-xsYKvtZ1OMe|m)9IU$Pv;D)wV;?vDu5^!X+sD_tebxHW=Qj9V59&Bz2+I%z=4=7Ha* zT-rLN^rT;uZ(>Wa~4A^i$_5ub&$furd4Tzf*(5r@!UZ=KeE_V>{-*yKw&E{qs&f z)8?gy8P8r>`O@sX2OHcQwsXp4A@r$@KL$_xHTc1HuRZe7y=wY9 z{|o(X?hV@l3cP0zb05;*ku2K7Ows?{a{pG^`}xX(Enj^;ctMxxlf#>z-gV}iy-P>5 zP2Kq6sb(qd8vSr&&5>anU1n3@Mg8&g#Z8hHwH&zMrKdB@9X=B#pP#nt`#JhXzZrB- zUzu~T^#?uLJ-qzKpL0XH{W39zJShgR|Oh*YADe3A63tpT?P&|M9>lOSYbGv*dx_j|TnZ z^J-e*$ZZKvJU>_%GAJjoW9OW;OU{1mT|Q*xwTIRO4r=UM@%%%VMwQ$UmxZSK%n}03 ziI-mevTfqdJz?q3Z)#N%8#(phGhg+4aABoIvpuxomOp=c=4J82JBFtJea-9LcTE1W z_I?rCd(F+XcdZLy5A7YGC}C)C=ySnb{xs>$M(fvW=?-28EP3?Z3~hX`Q{QddIQ8=nOGhM&Tf$xU-BZ{g z=*17;oHl<)_%Y+kxrLcK#%MlBF$JYAJ$3(pGh=pc8oMmybf`Fc!_JZ)A3OYgKkTww}B8{fzD3tX}Ktxg%xoeQk{$rug?CIrqN16XP1cv32X_}alV%cV^40_?M^@FY$?SDPmz2M~=Uyax|x9$F% zUCTosHfC#L!ZwYYzvFD1bK5r`$l6wt?sY6SJaxmO%~d5YZe8(Iaf?qEJRDSfM@09v zKDHJ2%x(YHipvijX!FU%R>Su%`yuJ;-$bi@j{l5(`TPE5yRc@-hmoECHtfA8<79Hn z%9DRYJaJn4R*x*mFR)uKl~-5FTwll5@Lg;$@O`hH657FGT7N0n?_ z^6{=6^CP1>{&cX_E4_YQJwNKxS8hb*Rn5AR*IRe2cwJPpUz@($?#8&}tuN1Qo!+6} zE7snJawp%_F*(xz_4Dl_EZK)Ef}UNOHDbuIsO~Fb>;Ur#qa^kaPPiyaqTvJC2Z@CDl#W8A`T?li@YnH}}cxQGc4eHSw4v-S_( zyRY54rQ_a-vn(2X;(EkSn=Zch@an8d_MdEr_pE6-Ys;={nM031wr1qGqR%!g-}99? z_Ru$PHhSrp@uJtc4#{7HE@(2U#h1zUZ#wpzGhxPEZT_sR&~!3aXxgd0MPaZL(_e&2rE^P1` z+IMx>U9|b{CkNlBd-!zE{h57#S`hl-*AuRv$e4R$Sjp74pYdBW zsN^Bb?$=-c;90}k%^QDf^7i##io6r8UGvK3j+qkk`MEdt&F$O!@ZYPt&i8uqjvgm| zDVllS^>>@pc6W~d$anOwZ}s`rd+tSX&Gh{fc72vRKK_Zh++H=xFD7k~A$w9t@1f@}^~$hCzj$%(N2fAA-Z{E_*Q=w+Uj08{ CnS5{n literal 0 HcmV?d00001 diff --git a/eng/msbuild/web/Web/Microsoft.WebSite.Publishing.targets b/eng/msbuild/web/Web/Microsoft.WebSite.Publishing.targets new file mode 100644 index 00000000..36e086a9 --- /dev/null +++ b/eng/msbuild/web/Web/Microsoft.WebSite.Publishing.targets @@ -0,0 +1,530 @@ + + + + + + + + + + + + + <_WebProjectType>WebSite + $([System.IO.Path]::GetTempPath())WebSitePublish\$([System.IO.Path]::GetFileName($(MSBuildProjectDirectory)))-$(MSBuildProjectDirectory.GetHashCode()) + $(OutputPath)\ + $(OutputPath) + + $(OutDir)\ + + + + $(OutputPath)obj\ + $(BaseIntermediateOutputPath)\ + + + + $(BaseIntermediateOutputPath)$(Configuration)\ + $(BaseIntermediateOutputPath)$(PlatformName)\$(Configuration)\ + $(IntermediateOutputPath)\ + + + + + + + + + + + + $(OutDir) + $(IntermediateOutputPath)AspnetCompileMerge\source + <_WDPSourceWebPhysicalPath>$(SourceWebPhysicalPath) + $(IntermediateOutputPath)TempBuildDir + <_ExcludeAppOffline Condition="'$(_ExcludeAppOffline)' ==''">true + <_ExcludeWebInfo Condition="'$(_ExcludeWebInfo)' ==''">true + + + + <_SkipHiddenItems Condition="'$(_SkipHiddenItems)'==''">true + + + + + + + + + + + + True + $(SourceWebProjectPath) + + + + false + + + + + + <_WDOutputPathItem Condition="'$(WDOutDir)' != '' and !HasTrailingSlash('$(WDOutDir)')" Include="$(WDOutDir)\_PublishedWebsites\$(MSBuildProjectName)\"/> + <_WDOutputPathItem Condition="'$(WDOutDir)' != '' and HasTrailingSlash('$(WDOutDir)')" Include="$(WDOutDir)_PublishedWebsites\$(MSBuildProjectName)\"/> + <_WDOutputPathItem Condition="'$(WDOutDir)' == ''" Include="$(OutputPath)"/> + <_WDPSourceWebPathItem Include="$(_WDPSourceWebPhysicalPath)"/> + <_KeyFile Include="$(KeyFile)"/> + + + + + Any CPU + + + + $(WDOutDir)\_PublishedWebsites\$(MSBuildProjectName)\ + <_FullSourceWebDir>$(_WDPSourceWebPhysicalPath) + <_FullKeyFile Condition="'$(KeyFile)' != ''">@(_KeyFile->'%(FullPath)') + + + + + <_AspNetCompilerFixedNames Condition="'$(UseMerge)' != 'true'">$(UseFixedNames) + <_AspNetCompilerKeyContainer Condition="'$(UseMerge)' != 'true'">$(KeyContainer) + <_AspNetCompilerMetabasePath Condition="'$(UseMetabasePath)' == 'true'">$(SourceWebMetabasePath) + <_AspNetCompilerSourceWebPath Condition="'$(UseMetabasePath)' != 'true'">$(_FullSourceWebDir) + <_AspNetCompilerVirtualPath Condition="'$(UseMetabasePath)' != 'true'">$(SourceWebVirtualPath) + + + + true + + + + false + + + + $(MSBuildProjectDirectory) + $(MSBuildProjectDirectory)$(DefaultMsDeployAltSuffix) + AllFilesInProjectFolder + + True + False + $(OutputPath)\Parameters.xml + <_WDPDefaultIntermediateOutputPathPathRoot Condition="'$(_WPPDefaultIntermediateOutputPathPathRoot)' == ''">$(OutputPath)\ + + + + <_WDPDefaultIntermediateOutputPath>$(IntermediateOutputPath) + <_WDPDefaultIntermediateOutputPath Condition="!$([System.IO.path]::IsPathRooted($(IntermediateOutputPath)))">$(_WDPDefaultIntermediateOutputPathPathRoot)$(IntermediateOutputPath) + + + + + + + + + + + + $(PreTransformWebConfigDependsOn); + FixupTransformAssistFilesAsExclude; + + + + + <_AllExecutableUnderBin Include="$(SourceWebPhysicalPath)\Bin\*.dll;$(SourceWebPhysicalPath)\Bin\*.exe"/> + + + + + + <_WDP_IdentifyTransformAssistFile>web\.[^\\\.]*\.config$ + + + + + + + + + + + + + + + Web.config + + + + + + + + + $(WDTargetDir) + + + <_FullSourceWebDir>$(_FullSourceWebDir) + + + + + + + + <_WebFiles> + + False + Unknown + Run + Default + + + + + + + + + + + + + + + <_OriginalSourceWebPhysicalFullPath>$([System.IO.Path]::GetFullPath($(SourceWebPhysicalPath))) + <_OriginalSourceWebPhysicalFullPath Condition="!HasTrailingSlash('$(_OriginalSourceWebPhysicalFullPath)')">$(_OriginalSourceWebPhysicalFullPath)\ + + + + + <_WebFilesExclude Include="%(ExcludeFromBuild.Identity)"> + $([System.String]::new(%(ExcludeFromBuild.FullPath)).SubString($(_OriginalSourceWebPhysicalFullPath.Length))) + + <_WebFilesExclude Condition="'%(SourceRelativePath)'==''"> + %(Identity) + + <_WebFilesNoMetadata Remove="%(_WebFilesExclude.SourceRelativePath)" Condition="'%(_WebFilesExclude.SourceRelativePath)' != ''"/> + + + + + + + + <_WebFiles Include="$([System.IO.Path]::Combine($(_WDPSourceWebPhysicalPath), %(_WebFilesNoMetadata.Identity)))" > + %(_WebFilesNoMetadata.Identity) + + + + + + <_WebFiles Remove="@(ExcludeFromBuild)" /> + + + + + + + + + + + <_WDPAllExtraFilesUnderTempFolder Condition="'$(CopyBeforeBuildTargetPath)' != ''" Include="$(CopyBeforeBuildTargetPath)\**" /> + <_WDPAllExtraFilesUnderTempFolder + Remove="@(FilesForPackagingFromProject->'$(CopyBeforeBuildTargetPath)\%(DestinationRelativePath)')" /> + + + + + + + + + + + + <_AspNetCompilerSourceWebPath>$(CopyBeforeBuildTargetPath) + + + + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _PrepareForBuild; + ResolveProjectReferences; + _ResolveAssemblyReferencesWithRefreshFile; + ResolveReferences; + _CopyBeforeBuild; + + _CopyBeforeBuild + + + + + + + <_WDPOutputFiles> + + False + Unknown + Run + Default + + + + + + <_TempDirFullPath>$(MSBuildProjectDirectory)\$(TempBuildDir) + + + + + + + + + + + + + + <_WDPOutputFiles Include="@(_WDPOutputFilesNoMetadata)" > + %(_WDPOutputFilesNoMetadata.Identity) + + + + + + + + + <_CopyToOutputDirDependsOn> + $(_CopyToOutputDirDependsOn); + CoreCopyToOutputDir; + CleanTempBuildDir + + + + + + + + + <_WDPAllExtraFilesUnderTargetDir Condition="'$(WDTargetDir)' != ''" Include="$(WDTargetDir)\**" /> + <_WDPAllExtraFilesUnderTargetDir + Remove="@(_WDPOutputFiles->'$(WDTargetDir)\%(DestinationRelativePath)')" /> + + + + + + + + + + + + + + + + + + + + <_BuiltProjectOutputGroupOutput Include="$(WDTargetDir)**\*.*"/> + + %(_BuiltProjectOutputGroupOutput.SubFolder)%(_BuiltProjectOutputGroupOutput.RecursiveDir)%(Filename)%(Extension) + + + + + diff --git a/eng/msbuild/web/Web/Powershell/1.0.1/default-publish.ps1 b/eng/msbuild/web/Web/Powershell/1.0.1/default-publish.ps1 new file mode 100644 index 00000000..1f720165 --- /dev/null +++ b/eng/msbuild/web/Web/Powershell/1.0.1/default-publish.ps1 @@ -0,0 +1,101 @@ +[cmdletbinding(SupportsShouldProcess=$true)] +param($publishProperties, $packOutput, $nugetUrl) + +# to learn more about this file visit http://go.microsoft.com/fwlink/?LinkId=524327 +$publishModuleVersion = '1.0.1' +function Get-VisualStudio2015InstallPath{ + [cmdletbinding()] + param() + process{ + $keysToCheck = @('hklm:\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\14.0', + 'hklm:\SOFTWARE\Microsoft\VisualStudio\14.0', + 'hklm:\SOFTWARE\Wow6432Node\Microsoft\VWDExpress\14.0', + 'hklm:\SOFTWARE\Microsoft\VWDExpress\14.0' + ) + [string]$vsInstallPath=$null + + foreach($keyToCheck in $keysToCheck){ + if(Test-Path $keyToCheck){ + $vsInstallPath = (Get-itemproperty $keyToCheck -Name InstallDir -ErrorAction SilentlyContinue | select -ExpandProperty InstallDir -ErrorAction SilentlyContinue) + } + + if($vsInstallPath){ + break; + } + } + + $vsInstallPath + } +} + +$vsInstallPath = Get-VisualStudio2015InstallPath +$publishModulePath = "{0}Extensions\Microsoft\Web Tools\Publish\Scripts\{1}\" -f $vsInstallPath,'1.0.1' + +if(!(Test-Path $publishModulePath)){ + $publishModulePath = "{0}VWDExpressExtensions\Microsoft\Web Tools\Publish\Scripts\{1}\" -f $vsInstallPath,'1.0.1' +} + +$defaultPublishSettings = New-Object psobject -Property @{ + LocalInstallDir = $publishModulePath +} + +function Enable-PackageDownloader{ + [cmdletbinding()] + param( + $toolsDir = "$env:LOCALAPPDATA\Microsoft\Web Tools\Publish\package-downloader-$publishModuleVersion\", + $pkgDownloaderDownloadUrl = 'http://go.microsoft.com/fwlink/?LinkId=524325') # package-downloader.psm1 + process{ + if(get-module package-downloader){ + remove-module package-downloader | Out-Null + } + + if(!(get-module package-downloader)){ + if(!(Test-Path $toolsDir)){ New-Item -Path $toolsDir -ItemType Directory -WhatIf:$false } + + $expectedPath = (Join-Path ($toolsDir) 'package-downloader.psm1') + if(!(Test-Path $expectedPath)){ + 'Downloading [{0}] to [{1}]' -f $pkgDownloaderDownloadUrl,$expectedPath | Write-Verbose + (New-Object System.Net.WebClient).DownloadFile($pkgDownloaderDownloadUrl, $expectedPath) + } + + if(!$expectedPath){throw ('Unable to download package-downloader.psm1')} + + 'importing module [{0}]' -f $expectedPath | Write-Output + Import-Module $expectedPath -DisableNameChecking -Force + } + } +} + +function Enable-PublishModule{ + [cmdletbinding()] + param() + process{ + if(get-module publish-module){ + remove-module publish-module | Out-Null + } + + if(!(get-module publish-module)){ + $localpublishmodulepath = Join-Path $defaultPublishSettings.LocalInstallDir 'publish-module.psm1' + if(Test-Path $localpublishmodulepath){ + 'importing module [publish-module="{0}"] from local install dir' -f $localpublishmodulepath | Write-Verbose + Import-Module $localpublishmodulepath -DisableNameChecking -Force + $true + } + } + } +} + +try{ + + if (!(Enable-PublishModule)){ + Enable-PackageDownloader + Enable-NuGetModule -name 'publish-module' -version $publishModuleVersion -nugetUrl $nugetUrl + } + + 'Calling Publish-AspNet' | Write-Verbose + # call Publish-AspNet to perform the publish operation + Publish-AspNet -publishProperties $publishProperties -packOutput $packOutput +} +catch{ + "An error occurred during publish.`n{0}" -f $_.Exception.Message | Write-Error +} \ No newline at end of file diff --git a/eng/msbuild/web/Web/Powershell/1.0.1/filesystem.pubxml b/eng/msbuild/web/Web/Powershell/1.0.1/filesystem.pubxml new file mode 100644 index 00000000..16003111 --- /dev/null +++ b/eng/msbuild/web/Web/Powershell/1.0.1/filesystem.pubxml @@ -0,0 +1,13 @@ + + + + + FileSystem + wwwroot + $(OutDir)\$(Configuration)\PublishOutput + False + + \ No newline at end of file diff --git a/eng/msbuild/web/Web/Powershell/1.0.1/package.pubxml b/eng/msbuild/web/Web/Powershell/1.0.1/package.pubxml new file mode 100644 index 00000000..cb3cab5e --- /dev/null +++ b/eng/msbuild/web/Web/Powershell/1.0.1/package.pubxml @@ -0,0 +1,13 @@ + + + + + Package + wwwroot + $(OutDir)\$(Configuration)\MSDeployPackage\$(MSBuildProjectName).zip + Default Web Site + + \ No newline at end of file diff --git a/eng/msbuild/web/Web/Powershell/1.0.1/publish-module.psm1 b/eng/msbuild/web/Web/Powershell/1.0.1/publish-module.psm1 new file mode 100644 index 00000000..ba97dc69 --- /dev/null +++ b/eng/msbuild/web/Web/Powershell/1.0.1/publish-module.psm1 @@ -0,0 +1,658 @@ +[cmdletbinding(SupportsShouldProcess=$true)] +param() + +$script:AspNetPublishHandlers = @{} + +$global:AspNetPublishSettings = New-Object -TypeName PSCustomObject @{ + MsdeployDefaultProperties = @{ + 'MSDeployUseChecksum'=$false + 'WebRoot'='wwwroot' + 'SkipExtraFilesOnServer'=$true + 'retryAttempts' = 2 + 'EnableMSDeployBackup' = $false + 'DeleteExistingFiles' = $false + 'MSDeployPackageContentFoldername'='website\' + } +} + +function Register-AspnetPublishHandler{ + [cmdletbinding()] + param( + [Parameter(Mandatory=$true,Position=0)] + $name, + [Parameter(Mandatory=$true,Position=1)] + [ScriptBlock]$handler, + [switch]$force + ) + process{ + if(!($script:AspNetPublishHandlers[$name]) -or $force ){ + 'Adding handler for [{0}]' -f $name | Write-Verbose + $script:AspNetPublishHandlers[$name] = $handler + } + elseif(!($force)){ + 'Ignoring call to Register-AspnetPublishHandler for [name={0}], because a handler with that name exists and -force was not passed.' -f $name | Write-Verbose + } + } +} + +function Get-AspnetPublishHandler{ + [cmdletbinding()] + param( + [Parameter(Mandatory=$true,Position=0)] + $name + ) + process{ + $foundHandler = $script:AspNetPublishHandlers[$name] + + if(!$foundHandler){ + throw ('AspnetPublishHandler with name "{0}" was not found' -f $name) + } + + $foundHandler + } +} + +function GetInternal-ExcludeFilesArg{ + [cmdletbinding()] + param( + $publishProperties + ) + process{ + $excludeFiles = $publishProperties['ExcludeFiles'] + foreach($exclude in $excludeFiles){ + if($exclude){ + [string]$objName = $exclude['objectname'] + + if([string]::IsNullOrEmpty($objName)){ + $objName = 'filePath' + } + + $excludePath = $exclude['absolutepath'] + + # output the result to the return list + ('-skip:objectName={0},absolutePath={1}' -f $objName, $excludePath) + } + } + } +} + +function GetInternal-ReplacementsMSDeployArgs{ + [cmdletbinding()] + param( + $publishProperties + ) + process{ + foreach($replace in ($publishProperties['Replacements'])){ + if($replace){ + $typeValue = $replace['type'] + if(!$typeValue){ $typeValue = 'TextFile' } + + $file = $replace['file'] + $match = $replace['match'] + $newValue = $replace['newValue'] + + if($file -and $match -and $newValue){ + $setParam = ('-setParam:type={0},scope={1},match={2},value={3}' -f $typeValue,$file, $match,$newValue) + 'Adding setparam [{0}]' -f $setParam | Write-Verbose + + # return it + $setParam + } + else{ + 'Skipping replacement because its missing a required value.[file="{0}",match="{1}",newValue="{2}"]' -f $file,$match,$newValue | Write-Verbose + } + } + } + } +} + +<# +.SYNOPSIS +Returns an array of msdeploy arguments that are used across different providers. +For example this wil handle useChecksum, appOffline, etc. +This will also add default properties if they are missing. +#> +function GetInternal-SharedMSDeployParametersFrom{ + [cmdletbinding()] + param( + [Parameter(Mandatory=$true,Position=0)] + $publishProperties + ) + process{ + $sharedArgs = New-Object psobject -Property @{ + ExtraArgs = @() + DestFragment = '' + } + + # add default properties if they are missing + foreach($propName in $global:AspNetPublishSettings.MsdeployDefaultProperties.Keys){ + if($publishProperties["$propName"] -eq $null){ + $defValue = $global:AspNetPublishSettings.MsdeployDefaultProperties["$propName"] + 'Adding default property to publishProperties ["{0}"="{1}"]' -f $propName,$defValue | Write-Verbose + $publishProperties["$propName"] = $defValue + } + } + + if($publishProperties['MSDeployUseChecksum'] -eq $true){ + $sharedArgs.ExtraArgs += '-usechecksum' + } + + if($publishProperties['WebPublishMethod'] -eq 'MSDeploy'){ + $offlineArgs = GetInternal-PublishAppOfflineProperties -publishProperties $publishProperties + $sharedArgs.ExtraArgs += $offlineArgs.AdditionalArguments + $sharedArgs.DestFragment += $offlineArgs.DestFragment + + if($publishProperties['SkipExtraFilesOnServer'] -eq $true){ + $sharedArgs.ExtraArgs += '-enableRule:DoNotDeleteRule' + } + } + + if($publishProperties['WebPublishMethod'] -eq 'FileSystem'){ + if($publishProperties['DeleteExistingFiles'] -eq $false){ + $sharedArgs.ExtraArgs += '-enableRule:DoNotDeleteRule' + } + } + + if($publishProperties['retryAttempts']){ + $sharedArgs.ExtraArgs += ('-retryAttempts:{0}' -f ([int]$publishProperties['retryAttempts'])) + } + + if($publishProperties['EncryptWebConfig'] -eq $true){ + $sharedArgs.ExtraArgs += '-EnableRule:EncryptWebConfig' + } + + if($publishProperties['EnableMSDeployBackup'] -eq $false){ + $sharedArgs.ExtraArgs += '-disablerule:BackupRule' + } + + # add excludes + $sharedArgs.ExtraArgs += (GetInternal-ExcludeFilesArg -publishProperties $publishProperties) + # add replacements + $sharedArgs.ExtraArgs += (GetInternal-ReplacementsMSDeployArgs -publishProperties $publishProperties) + + # return the args + $sharedArgs + } +} + +<# +.SYNOPSIS +This will publish the folder based on the properties in $publishProperties + +.EXAMPLE + Publish-AspNet -packOutput $packOutput -publishProperties @{ + 'WebPublishMethod'='MSDeploy' + 'MSDeployServiceURL'='contoso.scm.azurewebsites.net:443';` + 'DeployIisAppPath'='contoso';'Username'='$contoso';'Password'="$env:PublishPwd"} + +.EXAMPLE +Publish-AspNet -packOutput $packOutput -publishProperties @{ + 'WebPublishMethod'='FileSystem' + 'publishUrl'="$publishDest" + } + +.EXAMPLE +Publish-AspNet -packOutput $packOutput -publishProperties @{ + 'WebPublishMethod'='MSDeploy' + 'MSDeployServiceURL'='contoso.scm.azurewebsites.net:443';` +'DeployIisAppPath'='contoso';'Username'='$contoso';'Password'="$env:PublishPwd" + 'ExcludeFiles'=@( + @{'absolutepath'='wwwroot\\test.txt'}, + @{'absolutepath'='wwwroot\\_references.js'} +)} + +.EXAMPLE +Publish-AspNet -packOutput $packOutput -publishProperties @{ + 'WebPublishMethod'='FileSystem' + 'publishUrl'="$publishDest" + 'ExcludeFiles'=@( + @{'absolutepath'='wwwroot\\test.txt'}, + @{'absolutepath'='wwwroot\\_references.js'}) + 'Replacements' = @( + @{'file'='test.txt$';'match'='REPLACEME';'newValue'='updatedValue'}) + } + +Publish-AspNet -packOutput $packOutput -publishProperties @{ + 'WebPublishMethod'='FileSystem' + 'publishUrl'="$publishDest" + 'ExcludeFiles'=@( + @{'absolutepath'='wwwroot\\test.txt'}, + @{'absolutepath'='c:\\full\\path\\ok\\as\\well\\_references.js'}) + 'Replacements' = @( + @{'file'='test.txt$';'match'='REPLACEME';'newValue'='updatedValue'}) + } + +.EXAMPLE +Publish-AspNet -packOutput $packOutput -publishProperties @{ + 'WebPublishMethod'='FileSystem' + 'publishUrl'="$publishDest" + 'EnableMSDeployAppOffline'='true' + 'AppOfflineTemplate'='offline-template.html' + 'MSDeployUseChecksum'='true' +} +#> +function Publish-AspNet{ + [cmdletbinding(SupportsShouldProcess=$true)] + param( + [Parameter(Mandatory = $true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] + $publishProperties, + [Parameter(Mandatory = $true,Position=1,ValueFromPipelineByPropertyName=$true)] + $packOutput + ) + process{ + if($publishProperties['WebPublishMethodOverride']){ + 'Overriding publish method from $publishProperties[''WebPublishMethodOverride''] to [{0}]' -f ($publishProperties['WebPublishMethodOverride']) | Write-Verbose + $publishProperties['WebPublishMethod'] = $publishProperties['WebPublishMethodOverride'] + } + + if(!([System.IO.Path]::IsPathRooted($packOutput))){ + $packOutput = [System.IO.Path]::GetFullPath((Join-Path $pwd $packOutput)) + } + + $pubMethod = $publishProperties['WebPublishMethod'] + 'Publishing with publish method [{0}]' -f $pubMethod | Write-Output + + # get the handler based on WebPublishMethod, and call it. + &(Get-AspnetPublishHandler -name $pubMethod) $publishProperties $packOutput + } +} + +function Publish-AspNetMSDeploy{ + [cmdletbinding(SupportsShouldProcess=$true)] + param( + [Parameter(Mandatory = $true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] + $publishProperties, + [Parameter(Mandatory = $true,Position=1,ValueFromPipelineByPropertyName=$true)] + $packOutput + ) + process{ + if($publishProperties){ + $publishPwd = $publishProperties['Password'] + + <# + "C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe" + -source:IisApp='C:\Users\contoso\AppData\Local\Temp\AspNetPublish\WebApplication1\wwwroot' + -dest:IisApp='vramak4',ComputerName='https://contoso.scm.azurewebsites.net/msdeploy.axd',UserName='$contoso',Password='',IncludeAcls='False',AuthType='Basic' + -verb:sync + -enableRule:DoNotDeleteRule + -enableLink:contentLibExtension + -retryAttempts=2 + -userAgent="VS14.0:PublishDialog:WTE14.0.51027.0" + #> + + $sharedArgs = GetInternal-SharedMSDeployParametersFrom -publishProperties $publishProperties + + # WebRoot is a required property which has a default + $webroot = $publishProperties['WebRoot'] + + $webrootOutputFolder = (get-item (Join-Path $packOutput $webroot)).FullName + $publishArgs = @() + $publishArgs += ('-source:IisApp=''{0}''' -f "$webrootOutputFolder") + $publishArgs += ('-dest:IisApp=''{0}'',ComputerName=''{1}'',UserName=''{2}'',Password=''{3}'',IncludeAcls=''False'',AuthType=''Basic''{4}' -f + $publishProperties['DeployIisAppPath'], + (Get-MSDeployFullUrlFor -msdeployServiceUrl $publishProperties['MSDeployServiceURL']), + $publishProperties['UserName'], + $publishPwd, + $sharedArgs.DestFragment) + $publishArgs += '-verb:sync' + $publishArgs += '-enableLink:contentLibExtension' + $publishArgs += $sharedArgs.ExtraArgs + + $command = '"{0}" {1}' -f (Get-MSDeploy),($publishArgs -join ' ') + + if (! [String]::IsNullOrEmpty($publishPwd)) { + $command.Replace($publishPwd,'{PASSWORD-REMOVED-FROM-LOG}') | Print-CommandString + } + Execute-Command -exePath (Get-MSDeploy) -arguments ($publishArgs -join ' ') + } + else{ + throw 'publishProperties is empty, cannot publish' + } + } +} + +function Escape-TextForRegularExpressions{ + [cmdletbinding()] + param( + [Parameter(Position=0,Mandatory=$true)] + [string]$text + ) + process{ + # TODO: Get code from EscapeTextForRegularExpressions task + $text.Replace('\','\\') + } +} + +function Publish-AspNetMSDeployPackage{ + [cmdletbinding(SupportsShouldProcess=$true)] + param( + [Parameter(Mandatory = $true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] + $publishProperties, + [Parameter(Mandatory = $true,Position=1,ValueFromPipelineByPropertyName=$true)] + $packOutput + ) + process{ + if($publishProperties){ + $packageDestFilepah = $publishProperties['DesktopBuildPackageLocation'] + + if(!$packageDestFilepah){ + throw ('The package destination property (DesktopBuildPackageLocation) was not found in the publish properties') + } + + if(!([System.IO.Path]::IsPathRooted($packageDestFilepah))){ + $packageDestFilepah = [System.IO.Path]::GetFullPath((Join-Path $pwd $packageDestFilepah)) + } + + # if the dir doesn't exist create it + $pkgDir = ((new-object -typename System.IO.FileInfo($packageDestFilepah)).Directory) + if(!($pkgDir.Exists)) { + $pkgDir.Create() | Out-Null + } + + <# + "C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe" + -source:IisApp='C:\Users\contoso\AppData\Local\Temp\AspNetPublish\WebApplication1\wwwroot' + -dest:package=c:\temp\path\contosoweb.zip + -verb:sync + -enableRule:DoNotDeleteRule + -enableLink:contentLibExtension + -retryAttempts=2 + #> + + $sharedArgs = GetInternal-SharedMSDeployParametersFrom -publishProperties $publishProperties + + # WebRoot is a required property which has a default + $webroot = $publishProperties['WebRoot'] + + $webrootOutputFolder = (get-item (Join-Path $packOutput $webroot)).FullName + $publishArgs = @() + $publishArgs += ('-source:IisApp=''{0}''' -f "$webrootOutputFolder") + $publishArgs += ('-dest:package=''{0}''' -f $packageDestFilepah) + $publishArgs += '-verb:sync' + $publishArgs += '-enableLink:contentLibExtension' + $packageContentFolder = $publishProperties['MSDeployPackageContentFoldername'] + if(!$packageContentFolder){ $packageContentFolder = 'website' } + $publishArgs += ('-replace:match=''{0}'',replace=''{1}''' -f (Escape-TextForRegularExpressions $packOutput), $packageContentFolder ) + $publishArgs += $sharedArgs.ExtraArgs + + $command = '"{0}" {1}' -f (Get-MSDeploy),($publishArgs -join ' ') + $command | Print-CommandString + Execute-Command -exePath (Get-MSDeploy) -arguments ($publishArgs -join ' ') + } + else{ + throw 'publishProperties is empty, cannot publish' + } + } +} + +<# +.SYNOPSIS +If the passed in $publishProperties has values for appOffline the +needed arguments will be in the return object. If there is no such configuraion +then nothing is returned. +#> +function GetInternal-PublishAppOfflineProperties{ + [cmdletbinding()] + param( + [Parameter(Mandatory=$true,Position=0)] + $publishProperties + ) + process{ + $extraArg = ''; + $destFragment = '' + if($publishProperties['EnableMSDeployAppOffline'] -eq $true){ + $extraArg = '-enablerule:AppOffline' + + $appOfflineTemplate = $publishProperties['AppOfflineTemplate'] + if($appOfflineTemplate){ + $destFragment = (',appOfflineTemplate="{0}"' -f $appOfflineTemplate) + } + } + # return an object with both the properties that need to be in the command. + New-Object psobject -Property @{ + AdditionalArguments = $extraArg + DestFragment = $destFragment + } + } +} + +function Publish-AspNetFileSystem{ + [cmdletbinding(SupportsShouldProcess=$true)] + param( + [Parameter(Mandatory = $true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] + $publishProperties, + [Parameter(Mandatory = $true,Position=1,ValueFromPipelineByPropertyName=$true)] + $packOutput + ) + process{ + $pubOut = $publishProperties['publishUrl'] + + if([string]::IsNullOrWhiteSpace($pubOut)){ + throw ('publishUrl is a required property for FileSystem publish but it was empty.') + } + + # if it's a relative path then update it to a full path + if(!([System.IO.Path]::IsPathRooted($pubOut))){ + $pubOut = [System.IO.Path]::GetFullPath((Join-Path $pwd $pubOut)) + $publishProperties['publishUrl'] = "$pubOut" + } + + 'Publishing files to {0}' -f $pubOut | Write-Output + + # we use msdeploy.exe because it supports incremental publish/skips/replacements/etc + # msdeploy.exe -verb:sync -source:contentPath='C:\srcpath' -dest:contentPath='c:\destpath' + + $sharedArgs = GetInternal-SharedMSDeployParametersFrom -publishProperties $publishProperties + + $publishArgs = @() + $publishArgs += ('-source:contentPath=''{0}''' -f "$packOutput") + $publishArgs += ('-dest:contentPath=''{0}''{1}' -f "$pubOut",$sharedArgs.DestFragment) + $publishArgs += '-verb:sync' + $publishArgs += $sharedArgs.ExtraArgs + + $command = '"{0}" {1}' -f (Get-MSDeploy),($publishArgs -join ' ') + $command | Print-CommandString + Execute-Command -exePath (Get-MSDeploy) -arguments ($publishArgs -join ' ') + } +} + + +function Print-CommandString{ + [cmdletbinding()] + param( + [Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true)] + $command + ) + process{ + 'Executing command [{0}]' -f $command | Write-Output + } +} + +function Execute-CommandString{ + [cmdletbinding()] + param( + [Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true)] + [string[]]$command, + + [switch] + $useInvokeExpression, + + [switch] + $ignoreErrors + ) + process{ + foreach($cmdToExec in $command){ + 'Executing command [{0}]' -f $cmdToExec | Write-Verbose + if($useInvokeExpression){ + try { + Invoke-Expression -Command $cmdToExec + } + catch { + if(-not $ignoreErrors){ + $msg = ('The command [{0}] exited with exception [{1}]' -f $cmdToExec, $_.ToString()) + throw $msg + } + } + } + else { + cmd.exe /D /C $cmdToExec + + if(-not $ignoreErrors -and ($LASTEXITCODE -ne 0)){ + $msg = ('The command [{0}] exited with code [{1}]' -f $cmdToExec, $LASTEXITCODE) + throw $msg + } + } + } + } +} + +function Execute-Command { + [cmdletbinding()] + param( + [Parameter(Mandatory = $true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] + [String]$exePath, + [Parameter(Mandatory = $true,Position=1,ValueFromPipelineByPropertyName=$true)] + [String]$arguments + ) + process{ + $psi = New-Object -TypeName System.Diagnostics.ProcessStartInfo + $psi.CreateNoWindow = $true + $psi.UseShellExecute = $false + $psi.RedirectStandardOutput = $true + $psi.RedirectStandardError=$true + $psi.FileName = $exePath + $psi.Arguments = $arguments + + $process = New-Object -TypeName System.Diagnostics.Process + $process.StartInfo = $psi + $process.EnableRaisingEvents=$true + + # Register the event handler for error + $stdErrEvent = Register-ObjectEvent -InputObject $process -EventName 'ErrorDataReceived' -Action { + if (! [String]::IsNullOrEmpty($EventArgs.Data)) { + $EventArgs.Data | Write-Error + } + } + + # Starting process. + [Void]$process.Start() + $process.BeginErrorReadLine() + $output = $process.StandardOutput.ReadToEnd() + [Void]$process.WaitForExit() + $output | Write-Output + + # UnRegister the event handler for error + Unregister-Event -SourceIdentifier $stdErrEvent.Name + } +} + + +function Get-MSDeploy{ + [cmdletbinding()] + param() + process{ + $installPath = $env:msdeployinstallpath + + if(!$installPath){ + $keysToCheck = @('hklm:\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\3','hklm:\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\2','hklm:\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\1') + + foreach($keyToCheck in $keysToCheck){ + if(Test-Path $keyToCheck){ + $installPath = (Get-itemproperty $keyToCheck -Name InstallPath -ErrorAction SilentlyContinue | select -ExpandProperty InstallPath -ErrorAction SilentlyContinue) + } + + if($installPath){ + break; + } + } + } + + if(!$installPath){ + throw "Unable to find msdeploy.exe, please install it and try again" + } + + [string]$msdInstallLoc = (join-path $installPath 'msdeploy.exe') + + "Found msdeploy.exe at [{0}]" -f $msdInstallLoc | Write-Verbose + + $msdInstallLoc + } +} + +function Get-MSDeployFullUrlFor{ + [cmdletbinding()] + param($msdeployServiceUrl) + process{ + # Convert contoso.scm.azurewebsites.net:443 to https://contoso.scm.azurewebsites.net/msdeploy.axd + # TODO: This needs to be improved, it only works with Azure Websites currently. + 'https://{0}/msdeploy.axd' -f $msdeployServiceUrl.TrimEnd(':443') + } +} + +function InternalRegister-AspNetKnownPublishHandlers{ + [cmdletbinding()] + param() + process{ + 'Registering MSDeploy handler' | Write-Verbose + Register-AspnetPublishHandler -name 'MSDeploy' -force -handler { + [cmdletbinding()] + param( + [Parameter(Mandatory = $true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] + $publishProperties, + [Parameter(Mandatory = $true,Position=1,ValueFromPipelineByPropertyName=$true)] + $packOutput + ) + + Publish-AspNetMSDeploy -publishProperties $publishProperties -packOutput $packOutput + } + + 'Registering MSDeploy package handler' | Write-Verbose + Register-AspnetPublishHandler -name 'Package' -force -handler { + [cmdletbinding()] + param( + [Parameter(Mandatory = $true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] + $publishProperties, + [Parameter(Mandatory = $true,Position=1,ValueFromPipelineByPropertyName=$true)] + $packOutput + ) + + Publish-AspNetMSDeployPackage -publishProperties $publishProperties -packOutput $packOutput + } + + 'Registering FileSystem handler' | Write-Verbose + Register-AspnetPublishHandler -name 'FileSystem' -force -handler { + [cmdletbinding()] + param( + [Parameter(Mandatory = $true,Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] + $publishProperties, + [Parameter(Mandatory = $true,Position=1,ValueFromPipelineByPropertyName=$true)] + $packOutput + ) + + Publish-AspNetFileSystem -publishProperties $publishProperties -packOutput $packOutput + } + } +} + +<# +.SYNOPSIS + Used for testing purposes only. +#> +function InternalReset-AspNetPublishHandlers{ + [cmdletbinding()] + param() + process{ + $script:AspNetPublishHandlers = @{} + InternalRegister-AspNetKnownPublishHandlers + } +} + +Export-ModuleMember -function Get-*,Publish-*,Register-*,Enable-* +if($env:IsDeveloperMachine){ + # you can set the env var to expose all functions to importer. easy for development. + # this is required for executing pester test cases, it's set by build.ps1 + Export-ModuleMember -function * +} + +# register the handlers so that Publish-AspNet can be called +InternalRegister-AspNetKnownPublishHandlers \ No newline at end of file diff --git a/eng/msbuild/web/Web/Transform/Microsoft.Web.Publishing.AspNetCompileMerge.targets b/eng/msbuild/web/Web/Transform/Microsoft.Web.Publishing.AspNetCompileMerge.targets new file mode 100644 index 00000000..b150e252 --- /dev/null +++ b/eng/msbuild/web/Web/Transform/Microsoft.Web.Publishing.AspNetCompileMerge.targets @@ -0,0 +1,774 @@ + + + + + + + + + + + + + + true + + + + + True + + + + + + + + <_AspnetCompileMergePrecompiledOutput> + + False + AspNetCompilerMergePhase + Run + Default + + + + + + $(IntermediateOutputPath)AspnetCompileMerge\ + $(IntermediateOutputPath)AssemblyInfo\ + $(AspnetCompileMergeIntermediateOutputPath)Source + $(AspnetCompileMergeIntermediateOutputPath)TempBuildDir + + + + <_AspNetCompilerFixedNames Condition="'$(_AspNetCompilerFixedNames)' == ''">$(UseFixedNames) + + + + <_AspNetCompilerMetabasePath Condition ="'$(_AspNetCompilerMetabasePath)' == ''">$(SourceWebMetabasePath) + + + <_AspNetCompilerSourceWebPath Condition="'$(_AspNetCompilerSourceWebPath)' != ''">$(WebPublishPipelineProjectDirectory) + <_AspNetCompilerVirtualPath Condition="'$(_AspNetCompilerVirtualPath)' != ''">$(SourceWebVirtualPath) + + + + <_WPPCurrentBuildInfo>$(_WPPCurrentBuildInfo);PrecompileBeforePublish=$(PrecompileBeforePublish);WDPMergeOption=$(WDPMergeOption);_AspNetCompilerFixedNames=$(_AspNetCompilerFixedNames);_AspNetCompilerMetabasePath=$(_AspNetCompilerMetabasePath);Microsoft_Web_Publishing_AspNetCompileMerge_targets_Imported=$(Microsoft_Web_Publishing_AspNetCompileMerge_targets_Imported) + + + + + + + <_WPPCleanTargets> + $(_WPPCleanTargets); + CleanAspNetCompileMergeTempDirectories; + + + + + + + + + + + + + + + + + + + + + + + + + + GetFrameworkPaths; + + + + + aspnet_merge.exe + $(TargetFrameworkSDKToolsDirectory) + + + + + + + + + + + + + $(OnBeforeGenerateAssemblyInfoFromAssemblyAttributes); + $(GenerateAssemblyInfoFromAssemblyAttributesDependsOn); + GetFrameworkPaths; + GetAspNetMergePath; + + + + + + + <_AssemblyInfoSource Condition="'$(_AssemblyInfoSource)' == ''" >$(IntermediateOutputPath)AssemblyInfo\AssemblyInfo.cs + <_AssemblyInfoSourceDirectory>$([System.IO.Path]::GetDirectoryName($(_AssemblyInfoSource))) + $([System.IO.Path]::GetDirectoryName($(_AssemblyInfoSource)))\AssemblyInfo.dll + <_AssemblyInfoDllDirectory>$([System.IO.Path]::GetDirectoryName($(AssemblyInfoDll))) + + + + + + + + <_GenerateAssemblyInfoDll>false + <_GenerateAssemblyInfoDll Condition="'$(_AssemblyInfoSourceIsUpdated)' == 'true' or !Exists($(AssemblyInfoDll))">True + + + + + + + + + + + + + + + $(OnBeforeGenerateAssemblyInfoFromExistingAssembleInfo); + $(GenerateAssemblyInfoFromExistingAssembleInfoDependsOn); + GetFrameworkPaths; + GetAspNetMergePath; + GenerateAssemblyInfoFromAssemblyAttributes; + + + + + + + + + + <_AspNetCompile_AssemblyInfo Include="$(_AssemblyInfoSource)" /> + + + + <_AssemblyInfoDllDirectory>$(IntermediateOutputPath)AssemblyInfo + $(_AssemblyInfoDllDirectory)\AssemblyInfo.dll + + + + + + + <_GenerateAssemblyInfoDll>False + <_GenerateAssemblyInfoDll Condition="'$(AssemblyInfoDll)' == '' Or !Exists($(AssemblyInfoDll))">True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(OnBeforeGenerateAssemblyInfo); + $(GenerateAssemblyInfoDependsOn); + GetFrameworkPaths; + GetAspNetMergePath; + GenerateAssemblyInfoFromAssemblyAttributes; + GenerateAssemblyInfoFromExistingAssembleInfo; + + + + + + + + + + + + + $(OnBeforeGetAspNetPreCompileSourceVirtualPath); + $(GetAspNetPreCompileSourceVirtualPathDependsOn); + + + + + + <__AspNetPreCompileSourceVirtualPathName Include ="DevelopmentServerVPath" /> + <__AspNetPreCompileSourceVirtualPathValue /> + + + + + + + + + <_AspNetCompilerVirtualPath>%(__AspNetPreCompileSourceVirtualPathValue.Value) + <_AspNetCompilerVirtualPath Condition="'$(_AspNetCompilerVirtualPath)' == '' ">\ + + + + + + + + + + $(OnBeforeConfigureForAspNetPreCompileMerge); + $(ConfigureForAspNetPreCompileMergeDependsOn); + GetFrameworkPaths; + GetAspNetMergePath; + GetAspNetPreCompileSourceVirtualPath; + ResolveKeySource; + + + + + + + <_WDPFrameworkLowerThan4>False + <_WDPFrameworkLowerThan4 Condition="'$(TargetFrameworkVersion)' == 'v2.0' or '$(TargetFrameworkVersion)' == 'v3.0' or '$(TargetFrameworkVersion)' == 'v3.5'">True + + + + + $(windir)\Microsoft.NET\Framework64\v2.0.50727 + $(Framework20Dir) + + + $(windir)\Microsoft.NET\Framework64\v4.0.30319 + + + $(Framework40Dir) + + + + + + <_AspNetCompileMergeKeyFile Condition="'$(_AspNetCompileMergeKeyFile)' == ''">$(KeyOriginatorFile) + + + + <_AspNetCompileMergeKeyContainer Condition="'$(_AspNetCompileMergeKeyContainer)' == ''">$(KeyContainerName) + + + + + + + + + + + + $(OnBeforeAspNetPreCompile); + $(AspNetPreCompileDependsOn); + CopyAllFilesToSingleFolderForAspNetCompileMerge; + GetReferenceAssemblyPaths; + ResolveReferences; + ResolveKeySource; + ConfigureForAspNetPreCompileMerge; + + + + + + + <_PreAspnetCompileMergeSingleTargetFolderFullPath> + <_AspNetCompilerVirtualPath> + + + <_PreAspnetCompileMergeSingleTargetFolderFullPath>$([System.IO.Path]::GetFullPath($(_PreAspnetCompileMergeSingleTargetFolder))) + + + + <_PostAspnetCompileMergeSingleTargetFolderFullPath>$([System.IO.Path]::GetFullPath($(_PostAspnetCompileMergeSingleTargetFolder))) + + + + + + + + + + + + + + + + + + + + + + + + + + $(OnBeforeAspNetMerge); + CopyAllFilesToSingleFolderForAspNetCompileMerge; + $(AspNetMergeDependsOn); + ConfigureForAspNetPreCompileMerge; + AspNetPreCompile; + GenerateAssemblyInfo; + + + + + + + + + + + + + + + + + + + + + + + + + $(OnBeforeConfigureFoldersForAspNetCompileMerge); + $(ConfigureFoldersForAspNetCompileMergeDependsOn); + + + + + + + + + + <_PreAspnetCompileMergeSingleTargetFolder>$(CopyBeforeAspnetCompileMergeTargetPath) + <_PostAspnetCompileMergeSingleTargetFolder>$(AspnetCompileMerge_TempBuildDir) + + + + + + + + + + + + + + + + $(OnBeforeCopyAllFilesToSingleFolderForAspNetCompileMerge); + ConfigureFoldersForAspNetCompileMerge; + $(CopyAllFilesToSingleFolderForAspNetCompileMergeDependsOn); + + + + + + + <_AllExtraFilesUnder_PreAspnetCompileMergeSingleTargetFolder Include="$(_PreAspnetCompileMergeSingleTargetFolder)\**" /> + <_AllExtraFilesUnder_PreAspnetCompileMergeSingleTargetFolder + Remove="@(FilesForPackagingFromProject->'$(_PreAspnetCompileMergeSingleTargetFolder)\%(DestinationRelativePath)')" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(OnBeforePostAspNetCompileMergeCollectFiles); + $(PostAspNetCompileMergeCollectFilesDependsOn); + AspNetMerge; + + + + + + + + + <_AspnetCompileMergePrecompiledOutput Include="@(_AspnetCompileMergePrecompiledOutputNoMetadata->'$(_PostAspnetCompileMergeSingleTargetFolder)\%(Identity)')"> + %(_AspnetCompileMergePrecompiledOutputNoMetadata.Identity) + + + + + + + + + + + + <_AspnetCompileMergePrecompiledOutput Remove="@(_FilesForPackagingFromProject_in_AspnetCompileMergePrecompiledOutput->'%(FilterItemSpec)')" /> + <_AspnetCompileMergePrecompiledOutput Include="@(_FilesForPackagingFromProject_in_AspnetCompileMergePrecompiledOutput->'%(FilterItemSpec)')" /> + + + + + + + + + + + + + + + + + + + + + + + $(OnBeforeCleanPostAspNetCompileMergeFolder); + $(CleanPostAspNetCompileMergeFolderDependsOn); + ConfigureFoldersForAspNetCompileMerge; + + + + + + + + + + + + + + + + $(OnBeforePipelineAspNetCompileMergePhase); + $(PipelineAspNetCompileMergePhaseDependsOn); + CleanPostAspNetCompileMergeFolder; + CopyAllFilesToSingleFolderForAspNetCompileMerge; + AspNetPreCompile; + AspNetMerge; + PostAspNetCompileMergeCollectFiles; + + + PipelineTransformPhase; + + + + + + + + + + + + + + + + + true + + + diff --git a/eng/msbuild/web/WebApplications/Microsoft.WebApplication.Build.Tasks.Dll b/eng/msbuild/web/WebApplications/Microsoft.WebApplication.Build.Tasks.Dll new file mode 100644 index 0000000000000000000000000000000000000000..a86cb69dc618b35b9a7361fa4c67694075c5885a GIT binary patch literal 44824 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 Y%gg6nzV~-m*OOZ{Km9+0+szCN06l0R;{X5v literal 0 HcmV?d00001 diff --git a/eng/msbuild/web/WebApplications/Microsoft.WebApplication.targets b/eng/msbuild/web/WebApplications/Microsoft.WebApplication.targets new file mode 100644 index 00000000..5888831b --- /dev/null +++ b/eng/msbuild/web/WebApplications/Microsoft.WebApplication.targets @@ -0,0 +1,396 @@ + + + + + + + False + True + False + $(WebProjectOutputDirInsideProjectDefault) + False + False + False + True + False + + + + + $(MSBuildProjectDirectory) + $(OutDir)_PublishedWebsites\$(MSBuildProjectName) + + + + + $(PrepareForRunDependsOn); + CopySilverlightApplications; + _CopyBinDeployableAssemblies; + + + $(PrepareForRunDependsOn); + _CopyWebApplication; + _BuiltWebOutputGroupOutput + + + + + + + + + $(CleanDependsOn); + CleanWebProjectOutputDir; + + + + + + + + + + + + + + + + + + + + + + _CopyWebApplicationLegacy; + + + _WPPCopyWebApplication; + + + $(OnBefore_CopyWebApplicationDefault); + + + + + + <_CopyWebApplicationDependsOn Condition="'$(_CopyWebApplicationDependsOn)'==''"> + $(OnBefore_CopyWebApplication); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_SilverlightApplications Include="@(_AllSilverlightApplications)" Condition="Exists('%(Identity)')"/> + <_SilverlightApplicationsNotExist Include="@(_AllSilverlightApplications)" Condition="!Exists('%(Identity)')"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _bin_deployableAssemblies\ + $([System.IO.Path]::GetFullPath($(BinDeployableFolder))) + + + + + + + + + + <_binDeployableAssemblies Include ="@(__binDeployableAssemblies)" Condition="'@(__binDeployableAssemblies)' != ''"> + $([System.String]::Concat($([System.IO.Path]::GetDirectoryName($([System.String]::new('%(__binDeployableAssemblies.FullPath)')))),'\').SubString($(BinDeployableFolderFullPath.Length))) + + + + + + + + + + + + + + + $(MSBuildThisFileDirectory)..\Web\ + + + + + + + + $(OnBeforePipelineCollectFilesPhase); + CopySilverlightApplications; + + + + + + false + $(ProjectConfigFileName) + + diff --git a/sandbox/OpenIddict.Sandbox.AspNet.Client/OpenIddict.Sandbox.AspNet.Client.csproj b/sandbox/OpenIddict.Sandbox.AspNet.Client/OpenIddict.Sandbox.AspNet.Client.csproj index 3fc2461e..b3a6f2f9 100644 --- a/sandbox/OpenIddict.Sandbox.AspNet.Client/OpenIddict.Sandbox.AspNet.Client.csproj +++ b/sandbox/OpenIddict.Sandbox.AspNet.Client/OpenIddict.Sandbox.AspNet.Client.csproj @@ -4,7 +4,7 @@ net48 Web.config Overwrite - $(NuGetPackageRoot)msbuild.microsoft.visualstudio.web.targets\14.0.0.3\tools\VSToolsPath + $(RepoRoot)eng\msbuild\web false disable CA3147 diff --git a/sandbox/OpenIddict.Sandbox.AspNet.Server/OpenIddict.Sandbox.AspNet.Server.csproj b/sandbox/OpenIddict.Sandbox.AspNet.Server/OpenIddict.Sandbox.AspNet.Server.csproj index ca0018cb..9451aa58 100644 --- a/sandbox/OpenIddict.Sandbox.AspNet.Server/OpenIddict.Sandbox.AspNet.Server.csproj +++ b/sandbox/OpenIddict.Sandbox.AspNet.Server/OpenIddict.Sandbox.AspNet.Server.csproj @@ -4,7 +4,7 @@ net48 Web.config Overwrite - $(NuGetPackageRoot)msbuild.microsoft.visualstudio.web.targets\14.0.0.3\tools\VSToolsPath + $(RepoRoot)eng\msbuild\web false disable CA3147