├── LICENSE ├── README.md └── examples ├── SimpleForm ├── .vs │ └── SimpleForm │ │ └── v15 │ │ └── .suo ├── SimpleForm.sln └── SimpleForm │ ├── Resources.resx │ ├── SimpleForm.designer.ps1 │ ├── SimpleForm.ps1 │ ├── SimpleForm.pssproj │ ├── SimpleForm.resources.psd1 │ ├── SimpleForm.resx │ └── obj │ └── Debug │ └── SimpleForm.pssprojAssemblyReference.cache ├── forms-designer └── MultiThreadedForm │ ├── MultiThreadedForm.sln │ └── MultiThreadedForm │ ├── MultiThreadedForm.designer.ps1 │ ├── MultiThreadedForm.ps1 │ ├── MultiThreadedForm.pssproj │ └── MultiThreadedForm.resx └── wpf-designer └── VSTeamExplorer ├── VSTeamExplorer.sln └── VSTeamExplorer ├── Main.xaml ├── Main.xaml.ps1 ├── VSFunctions.ps1 ├── VSTeamExplorer.pssproj └── screenshot.png /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Ironman Software, LLC 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # THIS REPOSITORY IS NOT LONGER MAINTAINED - PLEASE USED THE FOLLOWING ISSUE TRACKER - [https://poshtools.com/issues](https://poshtools.com/issues) 2 | 3 | ![PoshToolsLogo](https://poshtools.com/wp-content/uploads/2017/04/PoshToolsLogo-2.png) 4 | 5 | [![Join the chat at https://gitter.im/dotnet/coreclr](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/ironmansoftware?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) 6 | 7 | Tools for developing PowerShell GUIs, script packaging and code conversion. For more information, visit [PowerShell Pro Tools](https://poshtools.com/powershell-pro-tools-for-visual-studio/). 8 | 9 | ### Visual Studio 2015 and 2017 Features 10 | - Windows Forms Designer 11 | - WPF Designer 12 | - Package script into executable 13 | - Obfuscate executable 14 | - Bundle multiple scripts and modules into a single script 15 | - MSBuild Support 16 | 17 | ### Visual Studio Code Features 18 | - Commands for bundling and packaging 19 | -------------------------------------------------------------------------------- /examples/SimpleForm/.vs/SimpleForm/v15/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ironmansoftware/poshprotools/5c0e0c10dbf86df19d76e627771f4d7629a44405/examples/SimpleForm/.vs/SimpleForm/v15/.suo -------------------------------------------------------------------------------- /examples/SimpleForm/SimpleForm.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.27703.2026 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{F5034706-568F-408A-B7B3-4D38C6DB8A32}") = "SimpleForm", "SimpleForm\SimpleForm.pssproj", "{6CAFC0C6-A428-4D30-A9F9-700E829FEA51}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {D00AD925-D144-47FC-B5E0-740FC60C6C50} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /examples/SimpleForm/SimpleForm/Resources.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | -------------------------------------------------------------------------------- /examples/SimpleForm/SimpleForm/SimpleForm.designer.ps1: -------------------------------------------------------------------------------- 1 | [void][System.Reflection.Assembly]::Load('System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a') 2 | [void][System.Reflection.Assembly]::Load('System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089') 3 | $MainForm = New-Object -TypeName System.Windows.Forms.Form 4 | [System.Windows.Forms.TextBox]$txtMyText = $null 5 | [System.Windows.Forms.Label]$lblMyLabel = $null 6 | [System.Windows.Forms.Button]$button2 = $null 7 | [System.Windows.Forms.Button]$button1 = $null 8 | function InitializeComponent 9 | { 10 | $txtMyText = (New-Object -TypeName System.Windows.Forms.TextBox) 11 | $lblMyLabel = (New-Object -TypeName System.Windows.Forms.Label) 12 | $button2 = (New-Object -TypeName System.Windows.Forms.Button) 13 | $MainForm.SuspendLayout() 14 | # 15 | #txtMyText 16 | # 17 | $txtMyText.Location = (New-Object -TypeName System.Drawing.Point -ArgumentList @([System.Int32]12,[System.Int32]12)) 18 | $txtMyText.Name = [System.String]'txtMyText' 19 | $txtMyText.Size = (New-Object -TypeName System.Drawing.Size -ArgumentList @([System.Int32]260,[System.Int32]20)) 20 | $txtMyText.TabIndex = [System.Int32]0 21 | # 22 | #lblMyLabel 23 | # 24 | $lblMyLabel.AutoSize = $true 25 | $lblMyLabel.Location = (New-Object -TypeName System.Drawing.Point -ArgumentList @([System.Int32]12,[System.Int32]45)) 26 | $lblMyLabel.Name = [System.String]'lblMyLabel' 27 | $lblMyLabel.Size = (New-Object -TypeName System.Drawing.Size -ArgumentList @([System.Int32]85,[System.Int32]13)) 28 | $lblMyLabel.TabIndex = [System.Int32]1 29 | $lblMyLabel.Text = [System.String]'This is some text' 30 | # 31 | #button2 32 | # 33 | $button2.Location = (New-Object -TypeName System.Drawing.Point -ArgumentList @([System.Int32]75,[System.Int32]70)) 34 | $button2.Name = [System.String]'button2' 35 | $button2.Size = (New-Object -TypeName System.Drawing.Size -ArgumentList @([System.Int32]119,[System.Int32]23)) 36 | $button2.TabIndex = [System.Int32]2 37 | $button2.Text = [System.String]'Set Label Text' 38 | $button2.UseVisualStyleBackColor = $true 39 | $button2.add_Click($button2_Click) 40 | # 41 | #MainForm 42 | # 43 | $MainForm.ClientSize = (New-Object -TypeName System.Drawing.Size -ArgumentList @([System.Int32]284,[System.Int32]101)) 44 | $MainForm.Controls.Add($button2) 45 | $MainForm.Controls.Add($lblMyLabel) 46 | $MainForm.Controls.Add($txtMyText) 47 | $MainForm.Name = [System.String]'MainForm' 48 | $MainForm.add_Load($MainForm_Load) 49 | $MainForm.ResumeLayout($false) 50 | $MainForm.PerformLayout() 51 | Add-Member -InputObject $MainForm -Name base -Value $base -MemberType NoteProperty 52 | Add-Member -InputObject $MainForm -Name txtMyText -Value $txtMyText -MemberType NoteProperty 53 | Add-Member -InputObject $MainForm -Name lblMyLabel -Value $lblMyLabel -MemberType NoteProperty 54 | Add-Member -InputObject $MainForm -Name button2 -Value $button2 -MemberType NoteProperty 55 | Add-Member -InputObject $MainForm -Name button1 -Value $button1 -MemberType NoteProperty 56 | } 57 | . InitializeComponent 58 | -------------------------------------------------------------------------------- /examples/SimpleForm/SimpleForm/SimpleForm.ps1: -------------------------------------------------------------------------------- 1 | $button2_Click = { 2 | $MainForm.lblMyLabel.Text = $MainForm.txtMyText.Text 3 | $MainForm.txtMyText.Clear() 4 | } 5 | 6 | . (Join-Path $PSScriptRoot 'SimpleForm.designer.ps1') 7 | 8 | $MainForm.ShowDialog() -------------------------------------------------------------------------------- /examples/SimpleForm/SimpleForm/SimpleForm.pssproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | Debug 4 | 2.0 5 | 6CAFC0C6-A428-4d30-A9F9-700E829FEA51 6 | Exe 7 | MyApplication 8 | MyApplication 9 | SimpleForm 10 | 11 | 12 | true 13 | full 14 | false 15 | bin\Debug\ 16 | DEBUG;TRACE 17 | prompt 18 | 4 19 | 20 | 21 | pdbonly 22 | true 23 | bin\Release\ 24 | TRACE 25 | prompt 26 | 4 27 | 28 | 29 | 30 | Code 31 | SimpleForm.ps1 32 | 33 | 34 | Form 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | System 43 | 44 | 45 | 46 | 47 | 48 | 49 | System.Drawing 50 | 51 | 52 | 53 | 54 | 55 | 56 | System.Drawing 57 | 58 | 59 | 60 | 61 | 62 | 63 | System.Windows.Forms 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | SimpleForm.ps1 73 | 74 | 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /examples/SimpleForm/SimpleForm/SimpleForm.resources.psd1: -------------------------------------------------------------------------------- 1 | @{ 2 | } -------------------------------------------------------------------------------- /examples/SimpleForm/SimpleForm/SimpleForm.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /examples/SimpleForm/SimpleForm/obj/Debug/SimpleForm.pssprojAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ironmansoftware/poshprotools/5c0e0c10dbf86df19d76e627771f4d7629a44405/examples/SimpleForm/SimpleForm/obj/Debug/SimpleForm.pssprojAssemblyReference.cache -------------------------------------------------------------------------------- /examples/forms-designer/MultiThreadedForm/MultiThreadedForm.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.27130.2010 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{F5034706-568F-408A-B7B3-4D38C6DB8A32}") = "MultiThreadedForm", "MultiThreadedForm\MultiThreadedForm.pssproj", "{6CAFC0C6-A428-4D30-A9F9-700E829FEA51}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {AD6EC5DC-77AB-4E79-A781-95E76DBB751F} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /examples/forms-designer/MultiThreadedForm/MultiThreadedForm/MultiThreadedForm.designer.ps1: -------------------------------------------------------------------------------- 1 | [void][System.Reflection.Assembly]::Load('System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a') 2 | [void][System.Reflection.Assembly]::Load('System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089') 3 | $MainForm = New-Object -TypeName System.Windows.Forms.Form 4 | [System.Windows.Forms.Button]$btnName = $null 5 | [System.Windows.Forms.ProgressBar]$progress = $null 6 | [System.Windows.Forms.Button]$button1 = $null 7 | function InitializeComponent 8 | { 9 | $progress = (New-Object -TypeName System.Windows.Forms.ProgressBar) 10 | $btnName = (New-Object -TypeName System.Windows.Forms.Button) 11 | $MainForm.SuspendLayout() 12 | # 13 | #progress 14 | # 15 | $progress.Location = (New-Object -TypeName System.Drawing.Point -ArgumentList @([System.Int32]12,[System.Int32]12)) 16 | $progress.Name = [string]'progress' 17 | $progress.Size = (New-Object -TypeName System.Drawing.Size -ArgumentList @([System.Int32]260,[System.Int32]23)) 18 | $progress.TabIndex = [System.Int32]0 19 | # 20 | #btnName 21 | # 22 | $btnName.Location = (New-Object -TypeName System.Drawing.Point -ArgumentList @([System.Int32]71,[System.Int32]64)) 23 | $btnName.Name = [string]'btnName' 24 | $btnName.Size = (New-Object -TypeName System.Drawing.Size -ArgumentList @([System.Int32]142,[System.Int32]23)) 25 | $btnName.TabIndex = [System.Int32]1 26 | $btnName.Text = [string]'Fill Progress Bar' 27 | $btnName.UseVisualStyleBackColor = $true 28 | $btnName.add_Click($btnName_Click) 29 | # 30 | #MainForm 31 | # 32 | $MainForm.ClientSize = (New-Object -TypeName System.Drawing.Size -ArgumentList @([System.Int32]284,[System.Int32]100)) 33 | $MainForm.Controls.Add($btnName) 34 | $MainForm.Controls.Add($progress) 35 | $MainForm.Name = [string]'MainForm' 36 | $MainForm.Text = [string]'Test' 37 | $MainForm.ResumeLayout($false) 38 | Add-Member -InputObject $MainForm -Name base -Value $base -MemberType NoteProperty 39 | Add-Member -InputObject $MainForm -Name btnName -Value $btnName -MemberType NoteProperty 40 | Add-Member -InputObject $MainForm -Name progress -Value $progress -MemberType NoteProperty 41 | Add-Member -InputObject $MainForm -Name button1 -Value $button1 -MemberType NoteProperty 42 | } 43 | . InitializeComponent 44 | -------------------------------------------------------------------------------- /examples/forms-designer/MultiThreadedForm/MultiThreadedForm/MultiThreadedForm.ps1: -------------------------------------------------------------------------------- 1 | $btnName_Click = { 2 | Start-RSJob -ScriptBlock { 3 | $Item = $_ 4 | 1..100 | ForEach-Object { 5 | Start-Sleep -Milliseconds 100 6 | $Item.Value = $_ 7 | [System.Windows.Forms.Application]::DoEvents(); 8 | } 9 | } -InputObject $MainForm.Progress 10 | } 11 | 12 | . (Join-Path $PSScriptRoot 'MultiThreadedForm.designer.ps1') 13 | 14 | $MainForm.ShowDialog() -------------------------------------------------------------------------------- /examples/forms-designer/MultiThreadedForm/MultiThreadedForm/MultiThreadedForm.pssproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | Debug 4 | 2.0 5 | 6CAFC0C6-A428-4d30-A9F9-700E829FEA51 6 | Exe 7 | MyApplication 8 | MyApplication 9 | MultiThreadedForm 10 | 11 | 12 | true 13 | full 14 | false 15 | bin\Debug\ 16 | DEBUG;TRACE 17 | prompt 18 | 4 19 | 20 | 21 | pdbonly 22 | true 23 | bin\Release\ 24 | TRACE 25 | prompt 26 | 4 27 | 28 | 29 | 30 | Code 31 | MultiThreadedForm.ps1 32 | 33 | 34 | Form 35 | 36 | 37 | 38 | 39 | System 40 | 41 | 42 | 43 | 44 | 45 | 46 | System.Drawing 47 | 48 | 49 | 50 | 51 | 52 | 53 | System.Drawing 54 | 55 | 56 | 57 | 58 | 59 | 60 | System.Windows.Forms 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | MultiThreadedForm.ps1 70 | 71 | 72 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /examples/forms-designer/MultiThreadedForm/MultiThreadedForm/MultiThreadedForm.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /examples/wpf-designer/VSTeamExplorer/VSTeamExplorer.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.26730.16 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{F5034706-568F-408A-B7B3-4D38C6DB8A32}") = "VSTeamExplorer", "VSTeamExplorer\VSTeamExplorer.pssproj", "{6CAFC0C6-A428-4D30-A9F9-700E829FEA51}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {6CAFC0C6-A428-4D30-A9F9-700E829FEA51}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {2606C408-344C-43F9-9A48-643938847B03} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /examples/wpf-designer/VSTeamExplorer/VSTeamExplorer/Main.xaml: -------------------------------------------------------------------------------- 1 |  8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |