├── 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 | 
4 |
5 | [](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 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/examples/wpf-designer/VSTeamExplorer/VSTeamExplorer/Main.xaml.ps1:
--------------------------------------------------------------------------------
1 | function Add-ControlVariables {
New-Variable -Name 'txtPat' -Value $window.FindName('txtPat') -Scope 1 -Force
2 | New-Variable -Name 'txtAccount' -Value $window.FindName('txtAccount') -Scope 1 -Force
3 | New-Variable -Name 'lstFeatures' -Value $window.FindName('lstFeatures') -Scope 1 -Force
4 | New-Variable -Name 'btnLogin' -Value $window.FindName('btnLogin') -Scope 1 -Force
5 | New-Variable -Name 'txtOutput' -Value $window.FindName('txtOutput') -Scope 1 -Force
6 | New-Variable -Name 'itemTeamInfo' -Value $window.FindName('itemTeamInfo') -Scope 1 -Force
7 | New-Variable -Name 'itemProjects' -Value $window.FindName('itemProjects') -Scope 1 -Force
8 | }
9 |
10 | function Load-Xaml {
11 | [xml]$xaml = Get-Content -Path $PSScriptRoot\Main.xaml
12 | $manager = New-Object System.Xml.XmlNamespaceManager -ArgumentList $xaml.NameTable
13 | $manager.AddNamespace("x", "http://schemas.microsoft.com/winfx/2006/xaml");
14 | $xaml.SelectNodes("//*[@x:Name='btnLogin']", $manager)[0].RemoveAttribute('Click')
15 | $xaml.SelectNodes("//*[@x:Name='itemTeamInfo']", $manager)[0].RemoveAttribute('Selected')
16 | $xaml.SelectNodes("//*[@x:Name='itemProjects']", $manager)[0].RemoveAttribute('Selected')
17 | $xamlReader = New-Object System.Xml.XmlNodeReader $xaml
18 | Write-Host $xaml
19 | [Windows.Markup.XamlReader]::Load($xamlReader)
20 | }
21 | function Set-EventHandlers {
22 | $btnLogin.add_Click({
23 | param([System.Object]$sender,[System.Windows.RoutedEventArgs]$e)
24 | btnLogin_Click($sender,$e)
25 | })
26 | $itemTeamInfo.add_Selected({
27 | param([System.Object]$sender,[System.Windows.RoutedEventArgs]$e)
28 | teamInfoSelected($sender,$e)
29 | })
30 | $itemProjects.add_Selected({
31 | param([System.Object]$sender,[System.Windows.RoutedEventArgs]$e)
32 | projectsSelected($sender,$e)
33 | })
34 | }
35 |
36 | $window = Load-Xaml
37 |
Add-ControlVariables
38 | Set-EventHandlers
39 |
40 | # Import out functions into this script
41 | . "$PSScriptRoot\VSFunctions.ps1"
42 |
43 | #
44 | # Triggered when clicking the login button
45 | #
46 | function btnLogin_Click
47 | {
48 | param($sender, $e)
49 |
50 | try {
51 | Login -Account $txtAccount.Text -Token $txtPat.Password
52 | $lstFeatures.IsEnabled = $true
53 | }
54 | catch [Exception] {
55 | Write-Error $_
56 | }
57 | }
58 |
59 | #
60 | # Triggered when selecting team info
61 | #
62 | function teamInfoSelected
63 | {
64 | param($sender, $e)
65 |
66 | $TeamInfo = GetInfo
67 |
68 | $txtOutput.AppendText($TeamInfo)
69 | }
70 |
71 | #
72 | # Triggered when selecting Projects
73 | #
74 | function projectsSelected
75 | {
76 | param($sender, $e)
77 |
78 | $Projects = GetProjects
79 |
80 | $txtOutput.AppendText($Projects)
81 | }
82 |
83 |
84 | $window.ShowDialog()
--------------------------------------------------------------------------------
/examples/wpf-designer/VSTeamExplorer/VSTeamExplorer/VSFunctions.ps1:
--------------------------------------------------------------------------------
1 | #Import the VSTeam module to connect to VSTS
2 | Import-Module VSTeam
3 |
4 | function Login {
5 | param($account, $token)
6 |
7 | Add-VSTeamAccount -Account $account -PersonalAccessToken $token
8 | }
9 |
10 | function GetProjects() {
11 | Get-VSTeamProject | Out-String
12 | }
13 |
14 | function GetInfo() {
15 | Get-VSTeamInfo | Out-String
16 | }
17 |
18 |
19 |
--------------------------------------------------------------------------------
/examples/wpf-designer/VSTeamExplorer/VSTeamExplorer/VSTeamExplorer.pssproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | Debug
4 | 2.0
5 | 6CAFC0C6-A428-4d30-A9F9-700E829FEA51
6 | Exe
7 | MyApplication
8 | MyApplication
9 | VSTeamExplorer
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 | Designer
31 |
32 |
33 |
34 |
35 | Code
36 | Main.xaml
37 |
38 |
39 |
40 |
41 |
42 | PresentationFramework
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/examples/wpf-designer/VSTeamExplorer/VSTeamExplorer/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ironmansoftware/poshprotools/5c0e0c10dbf86df19d76e627771f4d7629a44405/examples/wpf-designer/VSTeamExplorer/VSTeamExplorer/screenshot.png
--------------------------------------------------------------------------------