-
-
Notifications
You must be signed in to change notification settings - Fork 3
/
scripts - Copy templates to VS2019.ps1
48 lines (36 loc) · 1.61 KB
/
scripts - Copy templates to VS2019.ps1
1
2
3
4
5
6
7
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
# This script copies the item and project templates from
# /templates to the %documents%\Visual Studio 2019\Templates
# directory so they can be edited and tested
$projectTemplates = "Catel.WPF.Application", "Orchestra.Shell.MahApps.Application", "Orchestra.Shell.Ribbon.Fluent.Application"
$itemTemplates = "Catel.ViewModel", "Catel.WPF.DataWindow", "Catel.WPF.UserControl"
$vsVersion = "2019"
$vsName = "Visual Studio " + $vsVersion
$vsTemplatesPath = [Environment]::GetFolderPath('MyDocuments') + "\" + $vsName + "\Templates\"
$sourceDirectory = "templates\C#\"
Write-Host Using templates path: $vsTemplatesPath
$projectTemplatesPath = $vsTemplatesPath + "ProjectTemplates\Visual C#\"
$itemTemplatesPath = $vsTemplatesPath + "ItemTemplates\Visual C#\"
foreach ($projectTemplate in $projectTemplates)
{
$source = $sourceDirectory + "ProjectTemplates\" + $projectTemplate
$target = $projectTemplatesPath + $projectTemplate
Write-Host Copying project template $projectTemplate to $target
if (Test-Path $target)
{
Get-ChildItem -Path $target -Recurse | Remove-Item -force -recurse
Remove-Item $target
}
Copy-Item $source -Filter * -Destination $target -Recurse
}
foreach ($itemTemplate in $itemTemplates)
{
$source = $sourceDirectory + "ItemTemplates\" + $itemTemplate
$target = $itemTemplatesPath + $itemTemplate
Write-Host Copying item template $itemTemplate to $target
if (Test-Path $target)
{
Get-ChildItem -Path $target -Recurse | Remove-Item -force -recurse
Remove-Item $target
}
Copy-Item $source -Filter * -Destination $target -Recurse
}