From a3e523ec46607df47c3c87dd4236b5fc37d476a5 Mon Sep 17 00:00:00 2001 From: Anton Zimin Date: Fri, 10 Nov 2017 09:23:50 +0700 Subject: [PATCH] Update PSGallery #30 --- .gitignore | 1 + .../Saritasa.Build/1.13.1/PSGetModuleInfo.xml | Bin 14306 -> 0 bytes .../Saritasa.Build/1.13.1/Saritasa.Build.psd1 | 125 ------- .../Saritasa.Build/1.13.1/Saritasa.Build.psm1 | 295 --------------- .../{1.15.0 => 1.16.0}/PSGetModuleInfo.xml | Bin 14588 -> 14642 bytes .../{1.15.0 => 1.16.0}/Saritasa.Build.psd1 | 2 +- .../{1.15.0 => 1.16.0}/Saritasa.Build.psm1 | 117 ++++-- .../1.2.0/PSGetModuleInfo.xml | Bin 11602 -> 0 bytes .../1.3.0}/PSGetModuleInfo.xml | Bin 10058 -> 9438 bytes .../{1.2.0 => 1.3.0}/Saritasa.General.psd1 | 6 +- .../{1.2.0 => 1.3.0}/Saritasa.General.psm1 | 58 +++ .../Saritasa.Test/1.2.3/Saritasa.Test.psm1 | 53 --- .../{1.2.3 => 1.4.0}/PSGetModuleInfo.xml | Bin 10330 -> 10718 bytes .../{1.2.3 => 1.4.0}/Saritasa.Test.psd1 | 4 +- .../Saritasa.Test/1.4.0/Saritasa.Test.psm1 | 118 ++++++ .../1.13.0/PSGetModuleInfo.xml | Bin 15446 -> 0 bytes .../1.13.0/Saritasa.WebDeploy.psm1 | 339 ------------------ .../1.14.1/Saritasa.WebDeploy.psd1 | 124 ------- .../{1.14.1 => 1.15.0}/PSGetModuleInfo.xml | Bin 12898 -> 12916 bytes .../Saritasa.WebDeploy.psd1 | 4 +- .../Saritasa.WebDeploy.psm1 | 159 +++++++- ...sualStudio.Setup.Configuration.Interop.dll | Bin 26448 -> 0 bytes ...icrosoft.VisualStudio.Setup.PowerShell.dll | Bin 39936 -> 0 bytes ...VisualStudio.Setup.PowerShell.dll-Help.xml | 248 ------------- .../Modules/VSSetup/1.0.58.30119/VSSetup.psd1 | 21 -- .../VSSetup/1.0.58.30119/VSSetup.types.ps1xml | 66 ---- .../1.0.58.30119/about_VSSetup.help.txt | 35 -- ...sualStudio.Setup.Configuration.Interop.dll | Bin 0 -> 27992 bytes ...icrosoft.VisualStudio.Setup.PowerShell.dll | Bin 0 -> 40960 bytes .../VSSetup/2.0.1.32208/PSGetModuleInfo.xml | Bin 10058 -> 10062 bytes scripts/Saritasa.PsakeTasks.ps1 | 32 +- 31 files changed, 448 insertions(+), 1359 deletions(-) delete mode 100644 scripts/Modules/Saritasa.Build/1.13.1/PSGetModuleInfo.xml delete mode 100644 scripts/Modules/Saritasa.Build/1.13.1/Saritasa.Build.psd1 delete mode 100644 scripts/Modules/Saritasa.Build/1.13.1/Saritasa.Build.psm1 rename scripts/Modules/Saritasa.Build/{1.15.0 => 1.16.0}/PSGetModuleInfo.xml (93%) rename scripts/Modules/Saritasa.Build/{1.15.0 => 1.16.0}/Saritasa.Build.psd1 (99%) rename scripts/Modules/Saritasa.Build/{1.15.0 => 1.16.0}/Saritasa.Build.psm1 (72%) delete mode 100644 scripts/Modules/Saritasa.General/1.2.0/PSGetModuleInfo.xml rename scripts/Modules/{VSSetup/1.0.58.30119 => Saritasa.General/1.3.0}/PSGetModuleInfo.xml (61%) rename scripts/Modules/Saritasa.General/{1.2.0 => 1.3.0}/Saritasa.General.psd1 (97%) rename scripts/Modules/Saritasa.General/{1.2.0 => 1.3.0}/Saritasa.General.psm1 (84%) delete mode 100644 scripts/Modules/Saritasa.Test/1.2.3/Saritasa.Test.psm1 rename scripts/Modules/Saritasa.Test/{1.2.3 => 1.4.0}/PSGetModuleInfo.xml (87%) rename scripts/Modules/Saritasa.Test/{1.2.3 => 1.4.0}/Saritasa.Test.psd1 (97%) create mode 100644 scripts/Modules/Saritasa.Test/1.4.0/Saritasa.Test.psm1 delete mode 100644 scripts/Modules/Saritasa.WebDeploy/1.13.0/PSGetModuleInfo.xml delete mode 100644 scripts/Modules/Saritasa.WebDeploy/1.13.0/Saritasa.WebDeploy.psm1 delete mode 100644 scripts/Modules/Saritasa.WebDeploy/1.14.1/Saritasa.WebDeploy.psd1 rename scripts/Modules/Saritasa.WebDeploy/{1.14.1 => 1.15.0}/PSGetModuleInfo.xml (91%) rename scripts/Modules/Saritasa.WebDeploy/{1.13.0 => 1.15.0}/Saritasa.WebDeploy.psd1 (97%) rename scripts/Modules/Saritasa.WebDeploy/{1.14.1 => 1.15.0}/Saritasa.WebDeploy.psm1 (74%) delete mode 100644 scripts/Modules/VSSetup/1.0.58.30119/Microsoft.VisualStudio.Setup.Configuration.Interop.dll delete mode 100644 scripts/Modules/VSSetup/1.0.58.30119/Microsoft.VisualStudio.Setup.PowerShell.dll delete mode 100644 scripts/Modules/VSSetup/1.0.58.30119/Microsoft.VisualStudio.Setup.PowerShell.dll-Help.xml delete mode 100644 scripts/Modules/VSSetup/1.0.58.30119/VSSetup.psd1 delete mode 100644 scripts/Modules/VSSetup/1.0.58.30119/VSSetup.types.ps1xml delete mode 100644 scripts/Modules/VSSetup/1.0.58.30119/about_VSSetup.help.txt create mode 100644 scripts/Modules/VSSetup/2.0.1.32208/Microsoft.VisualStudio.Setup.Configuration.Interop.dll create mode 100644 scripts/Modules/VSSetup/2.0.1.32208/Microsoft.VisualStudio.Setup.PowerShell.dll diff --git a/.gitignore b/.gitignore index bbbe28ad..808b8dda 100644 --- a/.gitignore +++ b/.gitignore @@ -136,3 +136,4 @@ bundles sonar-project.properties *.targets *.bak +*.orig diff --git a/scripts/Modules/Saritasa.Build/1.13.1/PSGetModuleInfo.xml b/scripts/Modules/Saritasa.Build/1.13.1/PSGetModuleInfo.xml deleted file mode 100644 index afde38260b321fe38693a85c6acd7f537cc8fcc3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14306 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 AZU6uP diff --git a/scripts/Modules/Saritasa.Build/1.13.1/Saritasa.Build.psd1 b/scripts/Modules/Saritasa.Build/1.13.1/Saritasa.Build.psd1 deleted file mode 100644 index eef9086b..00000000 --- a/scripts/Modules/Saritasa.Build/1.13.1/Saritasa.Build.psd1 +++ /dev/null @@ -1,125 +0,0 @@ -# -# Module manifest for module 'Saritasa.Build' -# -# Generated by: Anton Zimin -# -# Generated on: 2/23/2015 -# - -@{ - -# Script module or binary module file associated with this manifest. -RootModule = 'Saritasa.Build' - -# Version number of this module. -ModuleVersion = '1.13.1' - -# ID used to uniquely identify this module -GUID = '5d34804a-169a-4fb1-bc0d-cc81f925f992' - -# Author of this module -Author = 'Anton Zimin' - -# Company or vendor of this module -CompanyName = 'Saritasa' - -# Copyright statement for this module -Copyright = '(c) 2015-2017 Saritasa. All rights reserved.' - -# Description of the functionality provided by this module -Description = 'Contains functions to execute MSBuild targets, restore NuGet packages, run EntityFramework migrations.' - -# Minimum version of the Windows PowerShell engine required by this module -# PowerShellVersion = '' - -# Name of the Windows PowerShell host required by this module -# PowerShellHostName = '' - -# Minimum version of the Windows PowerShell host required by this module -# PowerShellHostVersion = '' - -# Minimum version of Microsoft .NET Framework required by this module -# DotNetFrameworkVersion = '' - -# Minimum version of the common language runtime (CLR) required by this module -# CLRVersion = '' - -# Processor architecture (None, X86, Amd64) required by this module -ProcessorArchitecture = 'None' - -# Modules that must be imported into the global environment prior to importing this module -RequiredModules = @( - @{ ModuleName='Saritasa.General'; ModuleVersion='1.1.0'; GUID='7c7dc05c-033b-4838-8619-b84792571317' }, - @{ ModuleName='VSSetup'; ModuleVersion='1.0.47'; GUID='440e8fb1-19c4-4d39-8f75-37424bc4265a' } -) - -# Assemblies that must be loaded prior to importing this module -# RequiredAssemblies = @() - -# Script files (.ps1) that are run in the caller's environment prior to importing this module. -# ScriptsToProcess = @() - -# Type files (.ps1xml) to be loaded when importing this module -# TypesToProcess = @() - -# Format files (.ps1xml) to be loaded when importing this module -# FormatsToProcess = @() - -# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess -# NestedModules = @() - -# Functions to export from this module -FunctionsToExport = @('Copy-DotnetConfig', 'Initialize-MSBuild', 'Invoke-EFMigrate', - 'Install-NugetCli', 'Invoke-NugetRestore', 'Invoke-ProjectBuild', - 'Invoke-SolutionBuild', 'Update-AssemblyInfoFile', 'Update-VariablesInFile') - -# Cmdlets to export from this module -CmdletsToExport = @() - -# Variables to export from this module -VariablesToExport = @() - -# Aliases to export from this module -AliasesToExport = @() - -# DSC resources to export from this module -# DscResourcesToExport = @() - -# List of all modules packaged with this module -# ModuleList = @() - -# List of all files packaged with this module -# FileList = @() - -# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. -PrivateData = @{ - - PSData = @{ - - # Tags applied to this module. These help with module discovery in online galleries. - Tags = 'MSBuild', 'NuGet', 'EntityFramework', 'Version', 'Config' - - # A URL to the license for this module. - LicenseUri = 'https://raw.githubusercontent.com/Saritasa/PSGallery/master/LICENSE' - - # A URL to the main website for this project. - ProjectUri = 'https://github.com/Saritasa/PSGallery' - - # A URL to an icon representing this module. - # IconUri = '' - - # ReleaseNotes of this module - # ReleaseNotes = '' - - } # End of PSData hashtable - -} # End of PrivateData hashtable - -# HelpInfo URI of this module -# HelpInfoURI = '' - -# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. -# DefaultCommandPrefix = '' - -} - diff --git a/scripts/Modules/Saritasa.Build/1.13.1/Saritasa.Build.psm1 b/scripts/Modules/Saritasa.Build/1.13.1/Saritasa.Build.psm1 deleted file mode 100644 index 96a7ab71..00000000 --- a/scripts/Modules/Saritasa.Build/1.13.1/Saritasa.Build.psm1 +++ /dev/null @@ -1,295 +0,0 @@ -<# -.SYNOPSIS -Downloads nuget.exe to specified location. -#> -function Install-NugetCli -{ - [CmdletBinding()] - param - ( - [Parameter(Mandatory = $true)] - [string] $Destination - ) - - Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState - - $nugetExePath = "$Destination\nuget.exe" - - if (!(Test-Path $nugetExePath)) - { - Write-Information 'Downloading nuget.exe...' - Invoke-WebRequest 'https://dist.nuget.org/win-x86-commandline/latest/nuget.exe' -OutFile $nugetExePath - Write-Information 'Done.' - } - - $nugetVersion = ((Get-Item $nugetExePath).VersionInfo.ProductVersion).Split('.')[0] - if ($nugetVersion -lt 4) - { - Write-Information 'Downloading nuget.exe...' - Invoke-WebRequest 'https://dist.nuget.org/win-x86-commandline/v4.0.0/nuget.exe' -OutFile $nugetExePath - Write-Information 'Done.' - } -} - -<# -.SYNOPSIS -Restores packages for solution, project or packages.config. -#> -function Invoke-NugetRestore -{ - [CmdletBinding()] - param - ( - [Parameter(Mandatory = $true, HelpMessage = 'Path to solution. All NuGet packages from included projects will be restored.', ParameterSetName = 'Solution')] - [string] $SolutionPath, - [Parameter(Mandatory = $true, HelpMessage = 'Path to project or packages.config.', ParameterSetName = 'Project')] - [string] $ProjectPath, - [Parameter(Mandatory = $true, HelpMessage = 'Path to the solution directory. Not valid when restoring packages for a solution.', ParameterSetName = 'Project')] - [string] $SolutionDirectory - ) - - Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState - - Install-NugetCli -Destination $PSScriptRoot - $nugetExePath = "$PSScriptRoot\nuget.exe" - - $params = @('restore') - if ($SolutionPath) - { - $params += $SolutionPath - } - else - { - $params += @($ProjectPath, '-SolutionDirectory', $SolutionDirectory) - } - - &$nugetExePath $params - if ($LASTEXITCODE) - { - throw 'Nuget restore failed.' - } -} - -function Invoke-SolutionBuild -{ - [CmdletBinding()] - param - ( - [Parameter(Mandatory = $true, HelpMessage = 'Path to solution.')] - [string] $SolutionPath, - [Parameter(HelpMessage = 'Build configuration (Release, Debug, etc.)')] - [string] $Configuration - ) - - Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState - - Invoke-ProjectBuild $SolutionPath $Configuration -} - -function Invoke-ProjectBuild -{ - [CmdletBinding()] - param - ( - [Parameter(Mandatory = $true, HelpMessage = 'Path to project.')] - [string] $ProjectPath, - [Parameter(HelpMessage = 'Build configuration (Release, Debug, etc.)')] - [string] $Configuration, - [string] $Target = 'Build', - [string[]] $BuildParams - ) - - Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState - - msbuild.exe $ProjectPath '/m' "/t:$Target" "/p:Configuration=$Configuration" '/verbosity:normal' $BuildParams - if ($LASTEXITCODE) - { - throw 'Build failed.' - } -} - -<# -.SYNOPSIS -Update version numbers of AssemblyInfo.cs and AssemblyInfo.vb. - -.NOTES -Based on SetVersion script. -http://www.luisrocha.net/2009/11/setting-assembly-version-with-windows.html -Copyright (c) 2009 Luis Rocha -#> -function Update-AssemblyInfoFile -{ - [CmdletBinding(SupportsShouldProcess = $true)] - param - ( - [Parameter(Mandatory = $true, HelpMessage = 'Version string in major.minor.build.revision format.')] - [string] $Version - ) - - Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState - - $assemblyVersionPattern = 'AssemblyVersion\("[0-9]+(\.([0-9]+|\*)){1,3}"\)' - $fileVersionPattern = 'AssemblyFileVersion\("[0-9]+(\.([0-9]+|\*)){1,3}"\)' - $assemblyVersion = 'AssemblyVersion("' + $Version + '")'; - $fileVersion = 'AssemblyFileVersion("' + $Version + '")'; - - Get-ChildItem -r -Include AssemblyInfo.cs, AssemblyInfo.vb | ForEach-Object ` - { - $filename = $_.Directory.ToString() + '\' + $_.Name - - # If you are using a source control that requires to check-out files before - # modifying them, make sure to check-out the file here. - # For example, TFS will require the following command: - # tf checkout $filename - - if ($PSCmdlet.ShouldProcess($filename)) - { - (Get-Content $filename) | ForEach-Object ` - { - ForEach-Object { $_ -replace $assemblyVersionPattern, $assemblyVersion } | - ForEach-Object { $_ -replace $fileVersionPattern, $fileVersion } - } | Set-Content $filename -Encoding UTF8 - - Write-Information ($filename + ' -> ' + $Version) - } - } -} - -function Copy-DotnetConfig -{ - [CmdletBinding()] - param - ( - [Parameter(Mandatory = $true, HelpMessage = 'Path to App.config.template or Web.config.template file.')] - [string] $TemplateFilename - ) - - Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState - - $configFilename = $TemplateFilename -replace '\.template', '' - if (!(Test-Path $configFilename)) - { - Copy-Item $TemplateFilename $configFilename - } -} - -<# -.SYNOPSIS -Run Entity Framework migrations. - -.NOTES -In essential this command tries to find migrate.exe in packages and run it against specified -configuration file. -#> -function Invoke-EFMigrate -{ - [CmdletBinding()] - param - ( - [Parameter(Mandatory = $true, HelpMessage = 'Path to assembly file with migrations.')] - [string] $MigrationAssembly, - [Parameter(HelpMessage = 'Path to assembly .config file. If not specified default or parent Web.config will be used.')] - [string] $ConfigFilename - ) - - Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState - - # Format and validate params - if (!$ConfigFilename) - { - $ConfigFilename = $MigrationAssembly + '.config' - if (!(Test-Path $ConfigFilename)) - { - $ConfigFilename = Join-Path (Split-Path $MigrationAssembly) '..\Web.config' - } - } - if (!(Test-Path $ConfigFilename)) - { - throw "$ConfigFilename does not exist." - } - if (!(Test-Path $MigrationAssembly)) - { - throw "$MigrationAssembly does not exist." - } - - # Find migrate.exe - $packagesDirectory = Get-ChildItem 'packages' -Recurse -Depth 3 | - Where-Object { $_.PSIsContainer } | Select-Object -First 1 - if (!$packagesDirectory) - { - throw 'Cannot find packages directory.' - } - Write-Information "Found $packagesDirectory.FullName" - $migrateExeDirectory = Get-ChildItem $packagesDirectory.FullName 'EntityFramework.*' | - Sort-Object { $_.Name } | Select-Object -Last 1 - if (!$migrateExeDirectory) - { - throw 'Cannot find entity framework package.' - } - $migrateExe = Join-Path $migrateExeDirectory.FullName '.\tools\migrate.exe' - Write-Information "Found $migrateExeDirectory.FullName" - - # Run migrate - $workingDirectory = Get-Location - $args = @( - [System.IO.Path]::GetFileName($MigrationAssembly) - '/startUpDirectory:"{0}"' -f (Join-Path $workingDirectory (Split-Path $MigrationAssembly)) - '/startUpConfigurationFile:"{0}"' -f (Join-Path $workingDirectory $ConfigFilename) - ); - &"$migrateExe" $args - if ($LASTEXITCODE) - { - throw "Migration failed." - } -} - -<# -.SYNOPSIS -Replaces placeholders $(UserName) with values from hashtable. -.EXAMPLE -Update-VariablesInFile -Path Config.xml @{UserName='sa'} -#> -function Update-VariablesInFile -{ - [CmdletBinding()] - param - ( - [Parameter(Mandatory = $true)] - [string] $Path, - [Parameter(Mandatory = $true)] - [hashtable] $Variables - ) - - Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState - - $content = Get-Content $Path - - foreach ($key in $Variables.Keys) - { - $escapedValue = $Variables[$key] -replace '\$', '$$$$' - $content = $content -ireplace"\`$\($key\)", $escapedValue - } - - $content | Set-Content $Path -} - -<# -.SYNOPSIS -Adds correct path to MSBuild to Path environment variable. -#> -function Initialize-MSBuild -{ - $vsPath = (@((Get-VSSetupInstance | Select-VSSetupInstance -Version 15.0 -Require Microsoft.Component.MSBuild).InstallationPath, - (Get-VSSetupInstance | Select-VSSetupInstance -Version 15.0 -Product Microsoft.VisualStudio.Product.BuildTools).InstallationPath) -ne $null)[0] - - if ([System.IntPtr]::Size -eq 8) - { - $msbuildPath = Join-Path $vsPath 'MSBuild\15.0\Bin\amd64' - } - else - { - $msbuildPath = Join-Path $vsPath 'MSBuild\15.0\Bin' - } - - $env:Path = $msbuildPath + ";$env:Path" -} diff --git a/scripts/Modules/Saritasa.Build/1.15.0/PSGetModuleInfo.xml b/scripts/Modules/Saritasa.Build/1.16.0/PSGetModuleInfo.xml similarity index 93% rename from scripts/Modules/Saritasa.Build/1.15.0/PSGetModuleInfo.xml rename to scripts/Modules/Saritasa.Build/1.16.0/PSGetModuleInfo.xml index 6d4b355e0c9d51a39d3285d9ce2f45efe52358c3..e33ad2013835e65df0433c6a3f52c0f9c87f872a 100644 GIT binary patch delta 282 zcmexUxT$Ev6(&Zr%~zSOGD#aU7%=EEfXEOaY06;5V8UPqB#jx&Hy>q{S7$b6FqvGa zr#o3hSB}*jC~O4grRYkr8!{Mylub5NQl30Pm1puMT`^^lLHc0h^ntPlK$ba!0#Fr_ zv6Ex<94Bk(2@#`qbF7{}o2((w7+s)Yra(7>th55NL8Jjg6xcc6OmrB{ChIGyf*i6r z#8iiIvVoZjZ!S=y9z#Au5kn?JI!NK>HD(hSd7XhK#4v<|C9)@bTOlA;8UPJ8XHWo=NQO^- zs~b#|D#y)B^!V6h4S-gF+-U)HrvcQRMnD4%f#OkM=X@}+U^JbqucSJ8fhphS7*j3A q$&2_EK function Install-NugetCli { @@ -26,17 +31,28 @@ function Install-NugetCli <# .SYNOPSIS Restores packages for solution, project or packages.config. + +.EXAMPLE +Invoke-NugetRestore .\..\myapp.sln + +Restores all packages for myapp solution. + +.NOTES +If nuget command is not found - it will be downloaded to current directory. #> function Invoke-NugetRestore { [CmdletBinding()] param ( - [Parameter(Mandatory = $true, HelpMessage = 'Path to solution. All NuGet packages from included projects will be restored.', ParameterSetName = 'Solution')] + # Path to solution. All NuGet packages from included projects will be restored. + [Parameter(Mandatory = $true, ParameterSetName = 'Solution')] [string] $SolutionPath, - [Parameter(Mandatory = $true, HelpMessage = 'Path to project or packages.config.', ParameterSetName = 'Project')] + # Path to project or packages.config. + [Parameter(Mandatory = $true, ParameterSetName = 'Project')] [string] $ProjectPath, - [Parameter(Mandatory = $true, HelpMessage = 'Path to the solution directory. Not valid when restoring packages for a solution.', ParameterSetName = 'Project')] + # Path to the solution directory. Not valid when restoring packages for a solution. + [Parameter(Mandatory = $true, ParameterSetName = 'Project')] [string] $SolutionDirectory ) @@ -71,14 +87,22 @@ function Invoke-NugetRestore } } +<# +.SYNOPSIS +Builds solution. + +.EXAMPLE +Invoke-SolutionBuild .\..\myapp.sln -Configuration Debug +#> function Invoke-SolutionBuild { [CmdletBinding()] param ( - [Parameter(Mandatory = $true, HelpMessage = 'Path to solution.')] + # Path to solution. + [Parameter(Mandatory = $true)] [string] $SolutionPath, - [Parameter(HelpMessage = 'Build configuration (Release, Debug, etc.)')] + # Build configuration (Release, Debug, etc.) [string] $Configuration ) @@ -87,16 +111,32 @@ function Invoke-SolutionBuild Invoke-ProjectBuild $SolutionPath $Configuration } +<# +.SYNOPSIS +Builds project. + +.PARAMETER Target +Build the specified targets in the project. +Use a semicolon or comma to separate multiple targets. + +.EXAMPLE +Invoke-ProjectBuild .\..\Web\Web.csproj -Configuration 'Release' + +.NOTES +For more information about Target and BuildParams parameters, see MSBuild documentation. +#> function Invoke-ProjectBuild { [CmdletBinding()] param ( - [Parameter(Mandatory = $true, HelpMessage = 'Path to project.')] + # Path to project. + [Parameter(Mandatory = $true)] [string] $ProjectPath, - [Parameter(HelpMessage = 'Build configuration (Release, Debug, etc.)')] + # Build configuration (Release, Debug, etc.) [string] $Configuration, [string] $Target = 'Build', + # Additional build parameters. [string[]] $BuildParams ) @@ -113,6 +153,12 @@ function Invoke-ProjectBuild .SYNOPSIS Update version numbers of AssemblyInfo.cs and AssemblyInfo.vb. +.DESCRIPTION +Updates version numbers in AssemblyInfo files located in current directory and all subdirectories. + +.EXAMPLE +Update-AssemblyInfoFile '6.3.1.1' + .NOTES Based on SetVersion script. http://www.luisrocha.net/2009/11/setting-assembly-version-with-windows.html @@ -123,7 +169,8 @@ function Update-AssemblyInfoFile [CmdletBinding(SupportsShouldProcess = $true)] param ( - [Parameter(Mandatory = $true, HelpMessage = 'Version string in major.minor.build.revision format.')] + # Version string in major.minor.build.revision format. + [Parameter(Mandatory = $true)] [string] $Version ) @@ -136,7 +183,7 @@ function Update-AssemblyInfoFile Get-ChildItem -r -Include AssemblyInfo.cs, AssemblyInfo.vb | ForEach-Object ` { - $filename = $_.Directory.ToString() + '\' + $_.Name + $filename = $_.FullName # If you are using a source control that requires to check-out files before # modifying them, make sure to check-out the file here. @@ -147,21 +194,34 @@ function Update-AssemblyInfoFile { (Get-Content $filename) | ForEach-Object ` { - ForEach-Object { $_ -replace $assemblyVersionPattern, $assemblyVersion } | - ForEach-Object { $_ -replace $fileVersionPattern, $fileVersion } + ($_ -replace $assemblyVersionPattern, $assemblyVersion) ` + -replace $fileVersionPattern, $fileVersion } | Set-Content $filename -Encoding UTF8 - Write-Information ($filename + ' -> ' + $Version) + Write-Information "$filename -> $Version" } } } +<# +.SYNOPSIS +Creates file from a template. + +.DESCRIPTION +Creates a config file from it's template. If file already exists, it will not be overridden. + +.EXAMPLE +Copy-DotnetConfig .\..\Web\Web.config.template + +Creates a Web.config file in Web folder from template. +#> function Copy-DotnetConfig { [CmdletBinding()] param ( - [Parameter(Mandatory = $true, HelpMessage = 'Path to App.config.template or Web.config.template file.')] + # Path to App.config.template or Web.config.template file. + [Parameter(Mandatory = $true)] [string] $TemplateFilename ) @@ -178,6 +238,11 @@ function Copy-DotnetConfig .SYNOPSIS Run Entity Framework migrations. +.EXAMPLE +Invoke-EFMigrate ..\..\Domain\bin\Debug\Domain.dll + +Runs all migrations declared in Domain.dll file, using Domain.dll.config as configuration file + .NOTES In essential this command tries to find migrate.exe in packages and run it against specified configuration file. @@ -187,9 +252,10 @@ function Invoke-EFMigrate [CmdletBinding()] param ( - [Parameter(Mandatory = $true, HelpMessage = 'Path to assembly file with migrations.')] + # Path to assembly file with migrations. + [Parameter(Mandatory = $true)] [string] $MigrationAssembly, - [Parameter(HelpMessage = 'Path to assembly .config file. If not specified default or parent Web.config will be used.')] + # Path to assembly .config file. If not specified default or parent Web.config will be used. [string] $ConfigFilename ) @@ -220,7 +286,7 @@ function Invoke-EFMigrate { throw 'Cannot find packages directory.' } - Write-Information "Found $packagesDirectory.FullName" + Write-Information "Found $($packagesDirectory.FullName)" $migrateExeDirectory = Get-ChildItem $packagesDirectory.FullName 'EntityFramework.*' | Sort-Object { $_.Name } | Select-Object -Last 1 if (!$migrateExeDirectory) @@ -228,7 +294,7 @@ function Invoke-EFMigrate throw 'Cannot find entity framework package.' } $migrateExe = Join-Path $migrateExeDirectory.FullName '.\tools\migrate.exe' - Write-Information "Found $migrateExeDirectory.FullName" + Write-Information "Found $($migrateExeDirectory.FullName)" # Run migrate $workingDirectory = Get-Location @@ -247,6 +313,7 @@ function Invoke-EFMigrate <# .SYNOPSIS Replaces placeholders $(UserName) with values from hashtable. + .EXAMPLE Update-VariablesInFile -Path Config.xml @{UserName='sa'} #> @@ -303,14 +370,16 @@ function Initialize-MSBuild $msbuildPath = Join-Path $vsPath 'MSBuild\15.0\Bin' } - $env:Path = $msbuildPath + ";$env:Path" + $env:Path = "$msbuildPath;$env:Path" } <# .SYNOPSIS -Loads packages from many packages.config and saves to a single file. +Loads packages from multiple packages.config and saves to a single file. + .EXAMPLE Merge-PackageConfigs -SolutionDirectory .\src -OutputPath .\src\packages.merged.config + .EXAMPLE Merge-PackageConfigs -SolutionDirectory .\src -OutputPath .\src\packages.merged.net40.config -Framework net40 Merge-PackageConfigs -SolutionDirectory .\src -OutputPath .\src\packages.merged.net452.config -Framework net452 @@ -320,24 +389,26 @@ function Merge-PackageConfigs [CmdletBinding()] param ( + # Directory in which to look for packages.config files. [Parameter(Mandatory = $true)] [string] $SolutionDirectory, + # Path to file in which results should be saved. If file exists, it will be overridden. [Parameter(Mandatory = $true)] [string] $OutputPath, - [Parameter] + # If specified, only packages with this framework will be included in the results. [string] $Framework ) Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState - $files = Get-ChildItem $src -Recurse packages.config + $files = Get-ChildItem $SolutionDirectory -Recurse packages.config $packagesSet = New-Object 'System.Collections.Generic.HashSet[string]' foreach ($file in $files) { [xml] $xml = Get-Content $file.FullName - $xml.packages.package | % ` + $xml.packages.package | ForEach-Object ` { if (!$Framework -or $_.targetFramework -eq $Framework) { diff --git a/scripts/Modules/Saritasa.General/1.2.0/PSGetModuleInfo.xml b/scripts/Modules/Saritasa.General/1.2.0/PSGetModuleInfo.xml deleted file mode 100644 index 4865527d002ce88b8a3c40502594f5e02c69e0c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11602 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 $text = "" +C:\PS> $fileStream = New-Object System.IO.FileStream("G:\test\1.txt", [System.IO.FileMode]::Open) +C:\PS> Use-Object $fileStream ` +{ + $streamReader = New-Object System.IO.StreamReader($fileStream) + Use-Object $streamReader ` + { + $text = $streamReader.ReadToEnd() + } +} +C:\PS> $text +#> +function Use-Object +{ + [CmdletBinding()] + param + ( + # Object to be disposed. + [Parameter(Mandatory = $true)] + [AllowEmptyString()] + [AllowEmptyCollection()] + [AllowNull()] + [Object] + $InputObject, + + # Code to be executed after which the object will be disposed + [Parameter(Mandatory = $true)] + [scriptblock] + $ScriptBlock + ) + + try + { + . $ScriptBlock + } + finally + { + if ($null -ne $InputObject -and $InputObject -is [System.IDisposable]) + { + $InputObject.Dispose() + } + } +} \ No newline at end of file diff --git a/scripts/Modules/Saritasa.Test/1.2.3/Saritasa.Test.psm1 b/scripts/Modules/Saritasa.Test/1.2.3/Saritasa.Test.psm1 deleted file mode 100644 index 96e29b69..00000000 --- a/scripts/Modules/Saritasa.Test/1.2.3/Saritasa.Test.psm1 +++ /dev/null @@ -1,53 +0,0 @@ -<# -.SYNOPSIS -Run NUnit 3 tests. - -.NOTES -NUnit.ConsoleRunner package should be installed. -#> -function Invoke-Nunit3Runner -{ - [CmdletBinding()] - param - ( - [Parameter(Mandatory = $true, HelpMessage = 'Path to assembly file with tests.')] - [string] $TestAssembly, - [string[]] $Params - ) - - Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState - - # Format and validate params - if (!(Test-Path $TestAssembly)) - { - throw "$TestAssembly does not exist." - } - - # Find nunit3-console.exe - $packagesDirectory = Get-ChildItem -Filter 'packages' -Recurse -Depth 3 | - Where-Object { $_.PSIsContainer -and (Get-ChildItem $_.FullName 'NUnit.ConsoleRunner.*') } | - Select-Object -First 1 - - if (!$packagesDirectory) - { - throw 'Cannot find packages directory.' - } - Write-Information "Found $packagesDirectory." - $nunitExeDirectory = Get-ChildItem $packagesDirectory.FullName 'NUnit.ConsoleRunner.*' | - Sort-Object { $_.Name } | Select-Object -Last 1 - if (!$nunitExeDirectory) - { - throw 'Cannot find nunit console runner package.' - } - $nunitExe = Join-Path $nunitExeDirectory.FullName '.\tools\nunit3-console.exe' - Write-Information "Found $($nunitExeDirectory.FullName)" - - # Run nunit - $args = @($TestAssembly, '--noresult', '--stoponerror', '--noheader') - $args += $Params - &"$nunitExe" $args - if ($LASTEXITCODE) - { - throw "Unit tests failed." - } -} diff --git a/scripts/Modules/Saritasa.Test/1.2.3/PSGetModuleInfo.xml b/scripts/Modules/Saritasa.Test/1.4.0/PSGetModuleInfo.xml similarity index 87% rename from scripts/Modules/Saritasa.Test/1.2.3/PSGetModuleInfo.xml rename to scripts/Modules/Saritasa.Test/1.4.0/PSGetModuleInfo.xml index a1abae5b1b16c77e45812fdf5748d11f8e27d5aa..e5e5265658b96155937b31a4a9db4df61e25bc70 100644 GIT binary patch delta 377 zcmcZ=a4&en1twM#20aFY%~zTHnWPOF3>b77Kx7DzG-a@2Fk!F+k_HTBo9$Vf*(X2X zm*9+GC}qfF$Ydzl+{?3?8C7UK&@Nq|jix})8UdjdkYxb&tN}w5*mZ|gv=~h$pO;hx`D3%3 zsuCk_3Q&_CLq0kD8j2Mg=LKqByq!oiHg9(r{VKCin&)UpB z*@2g3vYm{?B*C7|2YAmh!T6g59|$m;F<4IisG>hvNJ);-aB{tp;p8MG306~}k!C=i zyRtsmU=Rti#+*R`)dC>jadM)v?PLvQ5hB(8oP0s$oU8$Z8QjqzbFF~p8UaZIAQ?4T zQBimD3so(MFG0M`E^11Q%()DPV9qynJw|>Ppz0Wga)x|{B8F@RqsfMv@lf>(1w|*X H(lh}8a2q~U diff --git a/scripts/Modules/Saritasa.Test/1.2.3/Saritasa.Test.psd1 b/scripts/Modules/Saritasa.Test/1.4.0/Saritasa.Test.psd1 similarity index 97% rename from scripts/Modules/Saritasa.Test/1.2.3/Saritasa.Test.psd1 rename to scripts/Modules/Saritasa.Test/1.4.0/Saritasa.Test.psd1 index 8d83aa1c..b8cca64e 100644 --- a/scripts/Modules/Saritasa.Test/1.2.3/Saritasa.Test.psd1 +++ b/scripts/Modules/Saritasa.Test/1.4.0/Saritasa.Test.psd1 @@ -12,7 +12,7 @@ RootModule = 'Saritasa.Test' # Version number of this module. -ModuleVersion = '1.2.3' +ModuleVersion = '1.4.0' # ID used to uniquely identify this module GUID = '97046c41-6b19-4e13-9434-ead6834a5338' @@ -68,7 +68,7 @@ RequiredModules = @( # NestedModules = @() # Functions to export from this module -FunctionsToExport = @('Invoke-Nunit3Runner') +FunctionsToExport = @('Invoke-Nunit3Runner', 'Invoke-XunitRunner') # Cmdlets to export from this module CmdletsToExport = @() diff --git a/scripts/Modules/Saritasa.Test/1.4.0/Saritasa.Test.psm1 b/scripts/Modules/Saritasa.Test/1.4.0/Saritasa.Test.psm1 new file mode 100644 index 00000000..dc226da9 --- /dev/null +++ b/scripts/Modules/Saritasa.Test/1.4.0/Saritasa.Test.psm1 @@ -0,0 +1,118 @@ +<# +.SYNOPSIS +Run NUnit 3 tests. + +.NOTES +NUnit.ConsoleRunner package should be installed. +#> +function Invoke-Nunit3Runner +{ + [CmdletBinding()] + param + ( + # Path to the testing assembly. + [Parameter(Mandatory = $true, HelpMessage = 'Path to assembly file with tests.')] + [string] $TestAssembly, + # Additional parameters to be passed to NUnit console runner. + [string[]] $Params, + # Path to the NUnit console runner. If not specified, the cmdlet will try to find it automatically from current script folder's subfolders. + [string] $NUnitPath + ) + + Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState + + # Format and validate params. + if (!(Test-Path $TestAssembly)) + { + throw "$TestAssembly does not exist." + } + if ($NUnitPath -and !(Test-Path $NUnitPath)) + { + throw "$NUnitPath does not exist." + } + + if (!($NUnitPath)) + { + # Find nunit3-console.exe + $packagesDirectory = Get-ChildItem -Filter 'packages' -Recurse -Depth 3 | + Where-Object { $_.PSIsContainer -and (Get-ChildItem $_.FullName 'NUnit.ConsoleRunner.*') } | + Select-Object -First 1 + + if (!$packagesDirectory) + { + throw 'Cannot find packages directory.' + } + Write-Information "Found $packagesDirectory." + $nunitExeDirectory = Get-ChildItem $packagesDirectory.FullName 'NUnit.ConsoleRunner.*' | + Sort-Object { $_.Name } | Select-Object -Last 1 + if (!$nunitExeDirectory) + { + throw 'Cannot find nunit console runner package.' + } + $NUnitPath = Join-Path $nunitExeDirectory.FullName '.\tools\nunit3-console.exe' + Write-Information "Found $($nunitExeDirectory.FullName)" + } + + # Run nunit. + $args = @($TestAssembly, '--noresult', '--stoponerror', '--noheader') + $args += $Params + &"$NUnitPath" $args + if ($LASTEXITCODE) + { + throw "Unit tests failed." + } +} + +<# +.SYNOPSIS +Run xUnit tests. + +.NOTES +xunit.runner.console package should be installed. +#> +function Invoke-XunitRunner +{ + [CmdletBinding()] + param + ( + [Parameter(Mandatory = $true, HelpMessage = 'Path to assembly file with tests.')] + [string] $TestAssembly, + [string[]] $Params + ) + + Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState + + # Format and validate params. + if (!(Test-Path $TestAssembly)) + { + throw "$TestAssembly does not exist." + } + + # Find xunit.console.exe . + $packagesDirectory = Get-ChildItem -Filter 'packages' -Recurse -Depth 3 | + Where-Object { $_.PSIsContainer -and (Get-ChildItem $_.FullName 'xunit.runner.console.*') } | + Select-Object -First 1 + + if (!$packagesDirectory) + { + throw 'Cannot find packages directory.' + } + Write-Information "Found $packagesDirectory." + $xunitExeDirectory = Get-ChildItem $packagesDirectory.FullName 'xunit.runner.console.*' | + Sort-Object { $_.Name } | Select-Object -Last 1 + if (!$xunitExeDirectory) + { + throw 'Cannot find xunit console runner package.' + } + $xunitExe = Join-Path $xunitExeDirectory.FullName '.\tools\xunit.console.exe' + Write-Information "Found $($xunitExeDirectory.FullName)" + + # Run xunit + $args = @($TestAssembly, '-nologo', '-nocolor') + $args += $Params + &"$xunitExe" $args + if ($LASTEXITCODE) + { + throw "Unit tests failed." + } +} diff --git a/scripts/Modules/Saritasa.WebDeploy/1.13.0/PSGetModuleInfo.xml b/scripts/Modules/Saritasa.WebDeploy/1.13.0/PSGetModuleInfo.xml deleted file mode 100644 index d326f18e7ccf24e23d00555c147678bb44f32e6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15446 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 diff --git a/scripts/Modules/Saritasa.WebDeploy/1.13.0/Saritasa.WebDeploy.psm1 b/scripts/Modules/Saritasa.WebDeploy/1.13.0/Saritasa.WebDeploy.psm1 deleted file mode 100644 index 25f23e2c..00000000 --- a/scripts/Modules/Saritasa.WebDeploy/1.13.0/Saritasa.WebDeploy.psm1 +++ /dev/null @@ -1,339 +0,0 @@ -$msdeployPath = "$env:ProgramFiles\IIS\Microsoft Web Deploy V3" -$msdeployPort = 8172 -$credential = '' - -<# -.SYNOPSIS - -.DESCRIPTION -Leave -Username and -Password empty for NTLM. -For NTLM support execute on server: -Set-ItemProperty HKLM:Software\Microsoft\WebManagement\Server WindowsAuthenticationEnabled 1 -Restart-Service WMSVC -https://blogs.msdn.microsoft.com/carlosag/2011/12/13/using-windows-authentication-with-web-deploy-and-wmsvc/ -#> -function Initialize-WebDeploy -{ - [CmdletBinding()] - param - ( - [System.Management.Automation.PSCredential] - [System.Management.Automation.Credential()] - $Credential, - [string] $MsdeployPath, - [int] $MsdeployPort - ) - - Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState - - $script:credential = '' - if ($Credential) - { - $username = $Credential.UserName - $password = $Credential.GetNetworkCredential().Password - $script:credential = "userName=$username,password=$password,authType=basic" - } - else - { - $script:credential = "authType='ntlm'" - } - - if ($MsdeployPath) - { - $script:msdeployPath = $MsdeployPath - } - - if ($MsdeployPort) - { - $script:msdeployPort = $MsdeployPort - } -} - -function Assert-WebDeployCredential() -{ - if (!$credential) - { - throw 'Credentials are not set.' - } -} - -<# -.EXAMPLE -Invoke-PackageBuild src/WebApp.csproj WebApp.zip -BuildParams ('/p:AspnetMergePath="C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools"') -#> -function Invoke-PackageBuild -{ - [CmdletBinding()] - param - ( - [Parameter(Mandatory = $true)] - [string] $ProjectPath, - [Parameter(Mandatory = $true)] - [string] $PackagePath, - [string] $Configuration = 'Release', - [string] $Platform = 'AnyCPU', - [bool] $Precompile = $true, - [string[]] $BuildParams - ) - - Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState - - $basicBuildParams = ('/m', '/t:Package', "/p:Configuration=$Configuration", - '/p:IncludeSetAclProviderOnDestination=False', "/p:PrecompileBeforePublish=$Precompile", - "/p:Platform=$Platform", "/p:PackageLocation=$PackagePath") - msbuild.exe $ProjectPath $basicBuildParams $BuildParams - if ($LASTEXITCODE) - { - throw 'Package build failed.' - } -} - -<# -.SYNOPSIS - -.DESCRIPTION -The recycleApp provider should be delegated to WDeployAdmin. -#> -function Start-AppPool -{ - [CmdletBinding()] - param - ( - [Parameter(Mandatory = $true)] - [string] $ServerHost, - [Parameter(Mandatory = $true)] - [string] $SiteName, - [Parameter(Mandatory = $true)] - [string] $Application - ) - - Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState - - Assert-WebDeployCredential - Write-Information 'Starting app pool...' - - $destArg = "-dest:recycleApp='$SiteName/$Application',recycleMode='StartAppPool'," + - "computername=https://${ServerHost}:$msdeployPort/msdeploy.axd?site=$SiteName," + $credential - $args = @('-verb:sync', '-source:recycleApp', $destArg) - - $result = Start-Process -NoNewWindow -Wait -PassThru "$msdeployPath\msdeploy.exe" $args - if ($result.ExitCode) - { - throw 'Msdeploy failed.' - } -} - -<# -.SYNOPSIS - -.DESCRIPTION -The recycleApp provider should be delegated to WDeployAdmin. -#> -function Stop-AppPool -{ - [CmdletBinding()] - param - ( - [Parameter(Mandatory = $true)] - [string] $ServerHost, - [Parameter(Mandatory = $true)] - [string] $SiteName, - [Parameter(Mandatory = $true)] - [string] $Application - ) - - Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState - - Assert-WebDeployCredential - Write-Information 'Stopping app pool...' - - $destArg = "-dest:recycleApp='$SiteName/$Application',recycleMode='StopAppPool'," + - "computername=https://${ServerHost}:$msdeployPort/msdeploy.axd?site=$SiteName," + $credential - $args = @('-verb:sync', '-source:recycleApp', $destArg) - - $result = Start-Process -NoNewWindow -Wait -PassThru "$msdeployPath\msdeploy.exe" $args - if ($result.ExitCode) - { - throw 'Msdeploy failed.' - } -} - -function GetComputerName([string] $ServerHost, [string] $SiteName) -{ - if (!(Test-IsLocalhost $ServerHost)) # Remote server. - { - "https://${ServerHost}:$msdeployPort/msdeploy.axd?site=$SiteName" - } - else - { - 'localhost' - } -} - -<# -.SYNOPSIS - -.DESCRIPTION -The recycleApp provider should be delegated to WDeployConfigWriter. -#> -function Invoke-WebDeployment -{ - [CmdletBinding()] - param - ( - [Parameter(Mandatory = $true)] - [string] $PackagePath, - [Parameter(Mandatory = $true)] - [string] $ServerHost, - [Parameter(Mandatory = $true)] - [string] $SiteName, - [Parameter(Mandatory = $true)] - [AllowEmptyString()] - [string] $Application, - [switch] $AllowUntrusted, - [string[]] $MSDeployParams - ) - - Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState - - Assert-WebDeployCredential - Write-Information "Deploying $PackagePath to $ServerHost/$Application..." - - $computerName = GetComputerName $ServerHost $SiteName - $args = @("-source:package='$PackagePath'", - ("-dest:auto,computerName='$computerName',includeAcls='False'," + $credential), - '-verb:sync', '-disableLink:AppPoolExtension', '-disableLink:ContentExtension', '-disableLink:CertificateExtension', - "-setParam:name='IIS Web Application Name',value='$SiteName/$Application'") - - if ($AllowUntrusted) - { - $args += '-allowUntrusted' - } - - if ($MSDeployParams) - { - $args += $MSDeployParams - } - - $result = Start-Process -NoNewWindow -Wait -PassThru "$msdeployPath\msdeploy.exe" $args - if ($result.ExitCode) - { - throw 'Msdeploy failed.' - } -} - -<# -.SYNOPSIS -Copies IIS app content from local server to remote server. -#> -function Sync-IisApp -{ - [CmdletBinding()] - param - ( - [Parameter(Mandatory = $true)] - [string] $SiteName, - [Parameter(Mandatory = $true)] - [AllowEmptyString()] - [string] $Application, - [Parameter(Mandatory = $true)] - [string] $DestinationServer - ) - - Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState - - Assert-WebDeployCredential - $args = @('-verb:sync', "-source:iisApp='$SiteName/$Application'", - ("-dest:auto,computerName='https://${DestinationServer}:$msdeployPort/msdeploy.axd?site=$SiteName'," + $credential)) - - $result = Start-Process -NoNewWindow -Wait -PassThru "$msdeployPath\msdeploy.exe" $args - if ($result.ExitCode) - { - throw 'Msdeploy failed.' - } - - Write-Information "Updated '$SiteName/$Application' app on $DestinationServer server." -} - -<# -.SYNOPSIS -Synchronizes web site file structure between local and remote servers. -#> -function Sync-WebContent -{ - [CmdletBinding()] - param - ( - [Parameter(Mandatory = $true)] - [string] $ContentPath, - [Parameter(Mandatory = $true)] - [string] $DestinationServer, - [Parameter(Mandatory = $true)] - [string] $SiteName, - [Parameter(Mandatory = $true)] - [AllowEmptyString()] - [string] $Application - ) - - Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState - - Assert-WebDeployCredential - $args = @('-verb:sync', "-source:contentPath='$ContentPath'", - ("-dest:'$SiteName/$Application',computerName='https://${DestinationServer}:$msdeployPort/msdeploy.axd?site=$SiteName'," + $credential)) - - $result = Start-Process -NoNewWindow -Wait -PassThru "$msdeployPath\msdeploy.exe" $args - if ($result.ExitCode) - { - throw 'Msdeploy failed.' - } - - Write-Information "Updated '$ContentPath' directory on $DestinationServer server." -} - -<# -.SYNOPSIS -Deploys ASP.NET web site (app without project) to remote server. -#> -function Invoke-WebSiteDeployment -{ - [CmdletBinding()] - param - ( - [Parameter(Mandatory = $true)] - [string] $Path, - [Parameter(Mandatory = $true)] - [string] $ServerHost, - [Parameter(Mandatory = $true)] - [string] $SiteName, - [Parameter(Mandatory = $true)] - [AllowEmptyString()] - [string] $Application, - [switch] $AllowUntrusted, - [string[]] $MSDeployParams - ) - - Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState - - Assert-WebDeployCredential - Write-Information "Deploying web site from $Path to $ServerHost/$Application..." - - $computerName = GetComputerName $ServerHost $SiteName - $args = @('-verb:sync', "-source:iisApp='$Path'", - ("-dest:iisApp='$SiteName/$Application',computerName='$computerName'," + $credential)) - - if ($AllowUntrusted) - { - $args += '-allowUntrusted' - } - - if ($MSDeployParams) - { - $args += $MSDeployParams - } - - $result = Start-Process -NoNewWindow -Wait -PassThru "$msdeployPath\msdeploy.exe" $args - if ($result.ExitCode) - { - throw 'Msdeploy failed.' - } -} diff --git a/scripts/Modules/Saritasa.WebDeploy/1.14.1/Saritasa.WebDeploy.psd1 b/scripts/Modules/Saritasa.WebDeploy/1.14.1/Saritasa.WebDeploy.psd1 deleted file mode 100644 index 6eac28e9..00000000 --- a/scripts/Modules/Saritasa.WebDeploy/1.14.1/Saritasa.WebDeploy.psd1 +++ /dev/null @@ -1,124 +0,0 @@ -# -# Module manifest for module 'Saritasa.WebDeploy' -# -# Generated by: Anton Zimin -# -# Generated on: 4/26/2016 -# - -@{ - -# Script module or binary module file associated with this manifest. -RootModule = 'Saritasa.WebDeploy' - -# Version number of this module. -ModuleVersion = '1.14.1' - -# ID used to uniquely identify this module -GUID = '1821cb68-29fe-4074-b296-58c450cb9177' - -# Author of this module -Author = 'Anton Zimin' - -# Company or vendor of this module -CompanyName = 'Saritasa' - -# Copyright statement for this module -Copyright = '(c) 2016 Saritasa. All rights reserved.' - -# Description of the functionality provided by this module -Description = 'Contains functions to control app pools and synchronize IIS web sites using Microsoft WebDeploy tool.' - -# Minimum version of the Windows PowerShell engine required by this module -# PowerShellVersion = '' - -# Name of the Windows PowerShell host required by this module -# PowerShellHostName = '' - -# Minimum version of the Windows PowerShell host required by this module -# PowerShellHostVersion = '' - -# Minimum version of Microsoft .NET Framework required by this module -# DotNetFrameworkVersion = '' - -# Minimum version of the common language runtime (CLR) required by this module -# CLRVersion = '' - -# Processor architecture (None, X86, Amd64) required by this module -ProcessorArchitecture = 'None' - -# Modules that must be imported into the global environment prior to importing this module -# RequiredModules = @() - -# Assemblies that must be loaded prior to importing this module -RequiredModules = @( - @{ ModuleName='Saritasa.General'; ModuleVersion='1.2.0'; GUID='7c7dc05c-033b-4838-8619-b84792571317' } -) - -# Script files (.ps1) that are run in the caller's environment prior to importing this module. -ScriptsToProcess = @() - -# Type files (.ps1xml) to be loaded when importing this module -TypesToProcess = @() - -# Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = @() - -# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess -# NestedModules = @() - -# Functions to export from this module -FunctionsToExport = @('Initialize-WebDeploy', - 'Invoke-PackageBuild', 'Start-AppPool', 'Stop-AppPool', - 'Invoke-WebDeployment', 'Invoke-WebSiteDeployment', 'Sync-IisApp', 'Sync-WebContent') - -# Cmdlets to export from this module -CmdletsToExport = @() - -# Variables to export from this module -VariablesToExport = @() - -# Aliases to export from this module -AliasesToExport = @() - -# DSC resources to export from this module -# DscResourcesToExport = @() - -# List of all modules packaged with this module -# ModuleList = @() - -# List of all files packaged with this module -FileList = @() - -# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. -PrivateData = @{ - - PSData = @{ - - # Tags applied to this module. These help with module discovery in online galleries. - Tags = @('WebDeploy', 'MSDeploy', 'IIS', 'MSBuild', 'AppPool', 'Package') - - # A URL to the license for this module. - LicenseUri = 'https://raw.githubusercontent.com/Saritasa/PSGallery/master/LICENSE' - - # A URL to the main website for this project. - ProjectUri = 'https://github.com/Saritasa/PSGallery' - - # A URL to an icon representing this module. - # IconUri = '' - - # ReleaseNotes of this module - # ReleaseNotes = '' - - } # End of PSData hashtable - -} # End of PrivateData hashtable - -# HelpInfo URI of this module -# HelpInfoURI = '' - -# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. -# DefaultCommandPrefix = '' - -} - diff --git a/scripts/Modules/Saritasa.WebDeploy/1.14.1/PSGetModuleInfo.xml b/scripts/Modules/Saritasa.WebDeploy/1.15.0/PSGetModuleInfo.xml similarity index 91% rename from scripts/Modules/Saritasa.WebDeploy/1.14.1/PSGetModuleInfo.xml rename to scripts/Modules/Saritasa.WebDeploy/1.15.0/PSGetModuleInfo.xml index 31bc2ea8faa75ffdec86874e032a38630b30f107..8cf5994c01a5f459241514779d8657f5cebbdfd1 100644 GIT binary patch delta 295 zcmaEq@+D=%9VS*&20aFY%@3I@nK*SBj2H|U3>nNPOS1M#8v@z7K%N0Z2#_>oumWNO zAZfs0y!jyOWjPe(;gb!-xF$D!KGS~373 zkflFaPeVi*WUfBgbbXku3HL%nT8NCYB%535NDM&1RAIdG}sjAWFsK7 z0vZT$vH?RB&`G+JZS-^?J_hj?&(dS&bq1=6VF+i)XDDLGp1jg98!B(eB05>m$OHf@ CgF4Uv delta 276 zcmey8@+f7)9VS*220aGD%@3I@nHUu&7s?4w-lO6)xr)_H+JM1~L6^aZ!GIxz!4ODW z0kJ8NGzKa^&3ai5qI~lnl^slshLaohbSE!Tmt!?%uwXC;^FFD|01dZbFb4A+G{lt6 z81%vBK}bUea|Q);lPAB|aGbnLLx>o)o8N1Qv%;Ne4s@mg&^RlgBh7)NA%n?eMZIXK m|A5Y8=63-K$1s#L function Assert-WebDeployCredential() { if (!$credential) @@ -58,6 +72,27 @@ function Assert-WebDeployCredential() } <# +.SYNOPSIS +Package a project. + +.PARAMETER ProjectPath +Path to project file. + +.PARAMETER PackagePath +Path to where the resulting package should be saved. + +.PARAMETER Configuration +Target build configuration. + +.PARAMETER Platform +Target build platform. + +.PARAMETER Precompile +Whether or not project should be precompiled before packaging. + +.PARAMETER BuildParams +Any additional parameters to be passed to MSBuild utility. + .EXAMPLE Invoke-PackageBuild src/WebApp.csproj WebApp.zip -BuildParams ('/p:AspnetMergePath="C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools"') #> @@ -90,8 +125,18 @@ function Invoke-PackageBuild <# .SYNOPSIS +Starts the application pool for specified application on a remote machine. + +.PARAMETER ServerHost +Hostname of target machine. -.DESCRIPTION +.PARAMETER SiteName +Web site name. + +.PARAMETER Application +Application name. + +.NOTES The recycleApp provider should be delegated to WDeployAdmin. #> function Start-AppPool @@ -114,7 +159,7 @@ function Start-AppPool $computerName, $useTempAgent = GetComputerName $ServerHost $SiteName $destArg = "-dest:recycleApp='$SiteName/$Application',recycleMode='StartAppPool'," + - "computerName='$computerName',tempAgent='$useTempAgent'," + $credential + "computerName='$computerName',tempAgent='$useTempAgent',$credential" $args = @('-verb:sync', '-source:recycleApp', $destArg) $result = Start-Process -NoNewWindow -Wait -PassThru "$msdeployPath\msdeploy.exe" $args @@ -126,8 +171,18 @@ function Start-AppPool <# .SYNOPSIS +Stops the application pool for specified application on a remote machine. + +.PARAMETER ServerHost +Hostname of target machine. -.DESCRIPTION +.PARAMETER SiteName +Web site name. + +.PARAMETER Application +Application name. + +.NOTES The recycleApp provider should be delegated to WDeployAdmin. #> function Stop-AppPool @@ -150,7 +205,7 @@ function Stop-AppPool $computerName, $useTempAgent = GetComputerName $ServerHost $SiteName $destArg = "-dest:recycleApp='$SiteName/$Application',recycleMode='StopAppPool'," + - "computerName='$computerName',tempAgent='$useTempAgent'," + $credential + "computerName='$computerName',tempAgent='$useTempAgent',$credential" $args = @('-verb:sync', '-source:recycleApp', $destArg) $result = Start-Process -NoNewWindow -Wait -PassThru "$msdeployPath\msdeploy.exe" $args @@ -161,6 +216,15 @@ function Stop-AppPool } <# +.SYNOPSIS +Get a MSDeploy URL by host name. + +.PARAMETER ServerHost +Hostname of target machine. + +.PARAMETER SiteName +Web site name. + .OUTPUTS computerName, useTempAgent #> @@ -201,9 +265,26 @@ function GetComputerName([string] $ServerHost, [string] $SiteName) <# .SYNOPSIS +Invokes a web deployment process. + +.PARAMETER PackagePath +Path to package to be deployed. +To generate the package the Invoke-PackageBuild command can be used. + +.PARAMETER ServerHost +Hostname of target machine. + +.PARAMETER SiteName +Web site name. + +.PARAMETER Application +Application name. + +.PARAMETER AllowUntrusted +When specified, untrusted SSL connections are allowed. Otherwise, untrusted SSL connections are not allowed. -.DESCRIPTION -The recycleApp provider should be delegated to WDeployConfigWriter. +.PARAMETER MSDeployParams +Any additional parameters to be passed to MSDeploy utility. #> function Invoke-WebDeployment { @@ -230,7 +311,7 @@ function Invoke-WebDeployment $computerName, $useTempAgent = GetComputerName $ServerHost $SiteName $args = @("-source:package='$PackagePath'", - ("-dest:auto,computerName='$computerName',tempAgent='$useTempAgent',includeAcls='False'," + $credential), + "-dest:auto,computerName='$computerName',tempAgent='$useTempAgent',includeAcls='False',$credential", '-verb:sync', '-disableLink:AppPoolExtension', '-disableLink:ContentExtension', '-disableLink:CertificateExtension', "-setParam:name='IIS Web Application Name',value='$SiteName/$Application'") @@ -254,6 +335,15 @@ function Invoke-WebDeployment <# .SYNOPSIS Copies IIS app content from local server to remote server. + +.PARAMETER SiteName +Web site name. + +.PARAMETER Application +Application name. + +.PARAMETER ServerHost +Hostname of target machine. #> function Sync-IisApp { @@ -266,16 +356,17 @@ function Sync-IisApp [AllowEmptyString()] [string] $Application, [Parameter(Mandatory = $true)] - [string] $DestinationServer + [Alias("DestinationServer")] + [string] $ServerHost ) Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState Assert-WebDeployCredential - $computerName, $useTempAgent = GetComputerName $DestinationServer $SiteName + $computerName, $useTempAgent = GetComputerName $ServerHost $SiteName $args = @('-verb:sync', "-source:iisApp='$SiteName/$Application'", - ("-dest:auto,computerName='$computerName',tempAgent='$useTempAgent'," + $credential)) + "-dest:auto,computerName='$computerName',tempAgent='$useTempAgent',$credential") $result = Start-Process -NoNewWindow -Wait -PassThru "$msdeployPath\msdeploy.exe" $args if ($result.ExitCode) @@ -283,12 +374,27 @@ function Sync-IisApp throw 'Msdeploy failed.' } - Write-Information "Updated '$SiteName/$Application' app on $DestinationServer server." + Write-Information "Updated '$SiteName/$Application' app on $ServerHost server." } <# .SYNOPSIS Synchronizes web site file structure between local and remote servers. + +.PARAMETER ContentPath +Folder path on local machine to be synchronized. + +.PARAMETER ServerHost +Hostname of target machine. + +.PARAMETER SiteName +Web site name. + +.PARAMETER AutoDestination +If set, the destination will be specified automatically. + +.PARAMETER Application +Application name. #> function Sync-WebContent { @@ -298,7 +404,8 @@ function Sync-WebContent [Parameter(Mandatory = $true)] [string] $ContentPath, [Parameter(Mandatory = $true)] - [string] $DestinationServer, + [Alias("DestinationServer")] + [string] $ServerHost, [Parameter(Mandatory = $true)] [string] $SiteName, [Parameter(Mandatory = $true, ParameterSetName = 'IIS')] @@ -324,7 +431,7 @@ function Sync-WebContent $computerName, $useTempAgent = GetComputerName $DestinationServer $SiteName $args = @('-verb:sync', "-source:contentPath='$ContentPath'", - ("$destinationParam,computerName='$computerName',tempAgent='$useTempAgent'," + $credential)) + "$destinationParam,computerName='$computerName',tempAgent='$useTempAgent',$credential") $result = Start-Process -NoNewWindow -Wait -PassThru "$msdeployPath\msdeploy.exe" $args if ($result.ExitCode) @@ -332,12 +439,30 @@ function Sync-WebContent throw 'Msdeploy failed.' } - Write-Information "Updated '$ContentPath' directory on $DestinationServer server." + Write-Information "Updated '$ContentPath' directory on $ServerHost server." } <# .SYNOPSIS Deploys ASP.NET web site (app without project) to remote server. It's similar to Sync-WebContent, but creates IIS application. + +.PARAMETER Path +Folder path to be deployed. + +.PARAMETER ServerHost +Hostname of target machine. + +.PARAMETER SiteName +Web site name. + +.PARAMETER Application +Application name. + +.PARAMETER AllowUntrusted +When specified, untrusted SSL connections are allowed. otherwise, untrusted SSL connections are not allowed. + +.PARAMETER MSDeployParams +Any additional parameters to be passed to MSDeploy utility. #> function Invoke-WebSiteDeployment { @@ -364,7 +489,7 @@ function Invoke-WebSiteDeployment $computerName, $useTempAgent = GetComputerName $ServerHost $SiteName $args = @('-verb:sync', "-source:iisApp='$Path'", - ("-dest:iisApp='$SiteName/$Application',computerName='$computerName',tempAgent='$useTempAgent'," + $credential)) + "-dest:iisApp='$SiteName/$Application',computerName='$computerName',tempAgent='$useTempAgent',$credential") if ($AllowUntrusted) { diff --git a/scripts/Modules/VSSetup/1.0.58.30119/Microsoft.VisualStudio.Setup.Configuration.Interop.dll b/scripts/Modules/VSSetup/1.0.58.30119/Microsoft.VisualStudio.Setup.Configuration.Interop.dll deleted file mode 100644 index 9c0fc33bffb57c7c46275204cd83839d212a1263..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26448 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 z 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 diff --git a/scripts/Modules/VSSetup/1.0.58.30119/Microsoft.VisualStudio.Setup.PowerShell.dll-Help.xml b/scripts/Modules/VSSetup/1.0.58.30119/Microsoft.VisualStudio.Setup.PowerShell.dll-Help.xml deleted file mode 100644 index ed19f11a..00000000 --- a/scripts/Modules/VSSetup/1.0.58.30119/Microsoft.VisualStudio.Setup.PowerShell.dll-Help.xml +++ /dev/null @@ -1,248 +0,0 @@ - - - - -Get-VSSetupInstance -Get -VSSetupInstance -Enumerates instances of Visual Studio and related products. - - - -Enumerates instances of Visual Studio and related products. By default, instances with fatal errors are not returned by you can pass `-All` to enumerate them as well. - - -Get-VSSetupInstance -All -Enumerate all instances of Visual Studio - even those with fatal errors. - - -SwitchParameter - -False - - -Get-VSSetupInstance -LiteralPath -The path to the product installation directory. Wildcards are not supported. - - -String[] -String[] - -None - - -Get-VSSetupInstance -Path -The path to the product installation directory. Wildcards are supported. - - -String[] -String[] - -None - - - -All -Enumerate all instances of Visual Studio - even those with fatal errors. - - -SwitchParameter -SwitchParameter - -False - -LiteralPath -The path to the product installation directory. Wildcards are not supported. - - -String[] -String[] - -None - -Path -The path to the product installation directory. Wildcards are supported. - - -String[] -String[] - -None - - -System.String[] - -One or more paths to product installation directories. - - - - -Microsoft.VisualStudio.Setup.Instance - -Information about each instance enumerated. - - - - - - -Example 1 -PS C:\> Get-VSSetupInstance -All -Enumerates all instances of Visual Studio and related products even if a fatal error was raised during the last operation. - - - -Example 2 -PS C:\> Get-VSSetupInstance 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community' -Gets the instance for the product installed to the given directory. - - - - -Online Version: -https://github.com/Microsoft/vssetup.powershell/raw/master/docs/VSSetup/Get-VSSetupInstance.md - - - - -Select-VSSetupInstance -Select -VSSetupInstance -Selects instances of Visual Studio and related products based on criteria. - - - -You can specify zero or more products (by default, Visual Studio Community, Professional, and Enterprise are selected) to find, along with zero or more workloads that all are required by any instances enumerated. Additionally, you can specify a version range to limit the results or request the latest instance. All criteria are combined to return the best instance or instances for your needs. - - -Select-VSSetupInstance -Instance -One or more instances from which to select. - - -Instance[] -Instance[] - -None - -Latest -Select the most recently installed instance with the highest version (within the optional `-Version` range). - - -SwitchParameter - -False - -Product -One or more products to select. Wildcards are supported. - - -String[] -String[] - -Microsoft.VisualStudio.Product.Community, Microsoft.VisualStudio.Product.Professional, Microsoft.VisualStudio.Product.Enterprise - -Require -One or more workloads or components to select. All requirements specified must be met. Wildcards are not supported. - - -String[] -String[] - -None - -Version -A version range to limit results. A single version like '15.0' is equivalent to '[15.0,)', which means versions 15.0 and newer are in range. You can also specify versions like '[15.0,16.0)' to limit results to Visual Studio 2017 only (15.x). - - -String -String - -None - - - -Instance -One or more instances from which to select. - - -Instance[] -Instance[] - -None - -Latest -Select the most recently installed instance with the highest version (within the optional `-Version` range). - - -SwitchParameter -SwitchParameter - -False - -Product -One or more products to select. Wildcards are supported. - - -String[] -String[] - -Microsoft.VisualStudio.Product.Community, Microsoft.VisualStudio.Product.Professional, Microsoft.VisualStudio.Product.Enterprise - -Require -One or more workloads or components to select. All requirements specified must be met. Wildcards are not supported. - - -String[] -String[] - -None - -Version -A version range to limit results. A single version like '15.0' is equivalent to '[15.0,)', which means versions 15.0 and newer are in range. You can also specify versions like '[15.0,16.0)' to limit results to Visual Studio 2017 only (15.x). - - -String -String - -None - - -Microsoft.VisualStudio.Setup.Instance[] - -One or more instances from which to select. - - - - -Microsoft.VisualStudio.Setup.Instance - -Zero or more instances that met specified criteria. - - - - - - -Example 1 -PS C:\> Get-VSSetupInstance | Select-VSSetupInstance -Latest -Select the most-recently installed instance of the highest version of Visual Studio Community, Professional, or Enterprise installed. - - - -Example 2 -PS C:\> Get-VSSetupInstance | Select-VSSetupInstance -Product * -Require 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64' -Selects any product with the native Visual C++ compilers installed. - - - - -Online Version: -https://github.com/Microsoft/vssetup.powershell/raw/master/docs/VSSetup/Select-VSSetupInstance.md - - - - diff --git a/scripts/Modules/VSSetup/1.0.58.30119/VSSetup.psd1 b/scripts/Modules/VSSetup/1.0.58.30119/VSSetup.psd1 deleted file mode 100644 index a278e430..00000000 --- a/scripts/Modules/VSSetup/1.0.58.30119/VSSetup.psd1 +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright (C) Microsoft Corporation. All rights reserved. -# Licensed under the MIT license. See LICENSE.txt in the project root for license information. -@{ -GUID = '440e8fb1-19c4-4d39-8f75-37424bc4265a' -Author = 'Microsoft Corporation' -CompanyName = 'Microsoft Corporation' -Copyright = 'Copyright (C) Microsoft Corporation. All rights reserved.' -Description = 'Visual Studio Setup PowerShell Module' -ModuleVersion = '1.0.58.30119' -PowerShellVersion = '2.0' -CLRVersion = '2.0' -ModuleToProcess = 'Microsoft.VisualStudio.Setup.PowerShell.dll' -RequiredAssemblies = 'Microsoft.VisualStudio.Setup.PowerShell.dll' -TypesToProcess = 'VSSetup.types.ps1xml' -PrivateData = @{ - PSData = @{ - ProjectUri = 'https://github.com/Microsoft/vssetup.powershell' - LicenseUri = 'https://github.com/Microsoft/vssetup.powershell/raw/a7753a0cb8/LICENSE.txt' - } -} -} diff --git a/scripts/Modules/VSSetup/1.0.58.30119/VSSetup.types.ps1xml b/scripts/Modules/VSSetup/1.0.58.30119/VSSetup.types.ps1xml deleted file mode 100644 index de29c7a3..00000000 --- a/scripts/Modules/VSSetup/1.0.58.30119/VSSetup.types.ps1xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - Microsoft.VisualStudio.Setup.Instance - - - PSStandardMembers - - - DefaultDisplayProperty - InstanceId - - - DefaultKeyPropertySet - - InstanceId - - - - DefaultDisplayPropertySet - - InstanceId - DisplayName - InstallationVersion - InstallationPath - InstallDate - - - - - - - Microsoft.VisualStudio.Setup.PowerShell.InstanceAdapter - - - - Microsoft.VisualStudio.Setup.PackageReference - - - PSStandardMembers - - - DefaultDisplayProperty - Id - - - DefaultKeyPropertySet - - UniqueId - - - - DefaultDisplayPropertySet - - Id - Version - Chip - Language - Branch - - - - - - - diff --git a/scripts/Modules/VSSetup/1.0.58.30119/about_VSSetup.help.txt b/scripts/Modules/VSSetup/1.0.58.30119/about_VSSetup.help.txt deleted file mode 100644 index ce935726..00000000 --- a/scripts/Modules/VSSetup/1.0.58.30119/about_VSSetup.help.txt +++ /dev/null @@ -1,35 +0,0 @@ -TOPIC - about_vssetup - -SHORT DESCRIPTION - Enumerate and select instances of Visual Studio. - -LONG DESCRIPTION - Visual Studio 2017 introduced a new setup engine capable of installing - multiple instances of Visual Studio and other products in the Visual Studio - family. This module provides commands to enumerate those instances and - select instances that meet your criteria. For example, in a development - environment you might have a script that finds an instance of Visual Studio - with the the Managed Desktop workload for writing projects targeting the - .NET Framework. See below for more examples. - -EXAMPLES - You can enumerate all instances - even those with errors that require a - repair - with the following command. - - Get-VSSetupInstance -All - - If you want to select all launchable instances of Visual Studio products - that have the Managed Desktop workload, use the following command. - - Get-VSSetupInstance | Get-VSSetupInstance ` - -Require 'Microsoft.VisualStudio.Workload.ManagedDesktop' - - You can also get the instance for an installation directory if you want to - discover more about what is installed to that directory. - - Get-VSSetupInstance 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community' - -SEE ALSO - https://github.com/Microsoft/vssetup.powershell - diff --git a/scripts/Modules/VSSetup/2.0.1.32208/Microsoft.VisualStudio.Setup.Configuration.Interop.dll b/scripts/Modules/VSSetup/2.0.1.32208/Microsoft.VisualStudio.Setup.Configuration.Interop.dll new file mode 100644 index 0000000000000000000000000000000000000000..24277b04a9449412e8a4a7627b957f17eccf92f2 GIT binary patch literal 27992 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 OX=UcuB1)vczyDuoy+pMD literal 0 HcmV?d00001 diff --git a/scripts/Modules/VSSetup/2.0.1.32208/Microsoft.VisualStudio.Setup.PowerShell.dll b/scripts/Modules/VSSetup/2.0.1.32208/Microsoft.VisualStudio.Setup.PowerShell.dll new file mode 100644 index 0000000000000000000000000000000000000000..fd6e87c2556d41f55b906b1dd5953b17c8ef69b3 GIT binary patch literal 40960 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 literal 0 HcmV?d00001 diff --git a/scripts/Modules/VSSetup/2.0.1.32208/PSGetModuleInfo.xml b/scripts/Modules/VSSetup/2.0.1.32208/PSGetModuleInfo.xml index d15b890a9ab2950f5b7ac95a054c6203aa0d9dc1..9e57d39b85806d3fe43ca2f95ed9262c41fd7828 100644 GIT binary patch delta 89 zcmX@*cg}Bvjx4(YgCT^FGP;vvWaT(b7|ejsl)-d!qwG~?X+xm2E)W|qgaEM- igB6f81Cz#^3l(Kqd7Xir7>00$e1;;1?8$T0)&c;9WD^De delta 89 zcmX@-cgk;rjx3|uWJ6hBb~6SG24e=p$rojGH*b+$!7OXQV8)=!V8md_5W-*pq^*G1 k97q}hMWVpUmMOkt;dcQF#W0jJ