| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- $ErrorActionPreference = 'Stop'
- $appName = 'ComputerShopWpf'
- $displayName = 'Продажа компьютерной техники'
- $sourceDir = Split-Path -Parent $MyInvocation.MyCommand.Path
- $installDir = Join-Path $env:LOCALAPPDATA $appName
- if (-not (Test-Path -LiteralPath $installDir)) {
- New-Item -ItemType Directory -Path $installDir | Out-Null
- }
- Get-ChildItem -LiteralPath $sourceDir -Force |
- Where-Object { $_.Name -notin @('install.cmd', 'install.ps1') } |
- Copy-Item -Destination $installDir -Recurse -Force
- $exePath = Join-Path $installDir 'ComputerShopWpf.exe'
- if (-not (Test-Path -LiteralPath $exePath)) {
- throw "ComputerShopWpf.exe was not copied to $installDir"
- }
- $databaseDir = Join-Path $installDir 'Database'
- if (-not (Test-Path -LiteralPath $databaseDir)) {
- New-Item -ItemType Directory -Path $databaseDir | Out-Null
- }
- $flatSqlPath = Join-Path $installDir 'create_database.sql'
- if (Test-Path -LiteralPath $flatSqlPath) {
- Copy-Item -LiteralPath $flatSqlPath -Destination (Join-Path $databaseDir 'create_database.sql') -Force
- }
- $desktopPath = [Environment]::GetFolderPath('DesktopDirectory')
- $shortcutPath = Join-Path $desktopPath "$displayName.lnk"
- $shell = New-Object -ComObject WScript.Shell
- $shortcut = $shell.CreateShortcut($shortcutPath)
- $shortcut.TargetPath = $exePath
- $shortcut.WorkingDirectory = $installDir
- $shortcut.IconLocation = $exePath
- $shortcut.Description = $displayName
- $shortcut.Save()
- $uninstallShortcutPath = Join-Path $desktopPath "$displayName - удалить.lnk"
- $uninstallScript = Join-Path $installDir 'uninstall.ps1'
- if (Test-Path -LiteralPath $uninstallScript) {
- $uninstallShortcut = $shell.CreateShortcut($uninstallShortcutPath)
- $uninstallShortcut.TargetPath = 'powershell.exe'
- $uninstallShortcut.Arguments = "-NoProfile -ExecutionPolicy Bypass -File `"$uninstallScript`""
- $uninstallShortcut.WorkingDirectory = $installDir
- $uninstallShortcut.Description = "Удалить $displayName"
- $uninstallShortcut.Save()
- }
- $shell.Popup("Приложение установлено в $installDir.`nЯрлык создан на рабочем столе.", 0, $displayName, 64) | Out-Null
|