Uninstall TopShelf service

Octopus.Script exported 2018-02-22 by sphinxy belongs to ‘Topshelf’ category.

This step can be used before unpacking a package with your TopShelf service to stop and remove the previous installation, if there is one.

Parameters

When steps based on the template are included in a project’s deployment process, the parameters below can be set.

Unpackage step =

The step where you unpack the topshelf service

Exe filename =

Name of exe file for service, if empty, package Id+“.exe.” will be used as default

Script body

Steps based on this template will execute the following PowerShell script.

$step = $OctopusParameters['Unpackage step']
$previous = $OctopusParameters["Octopus.Action[$step].Package.CustomInstallationDirectory"]
$customExeFilename = $OctopusParameters['Exe filename'];

if(!$previous -or (-not (Test-Path $previous)) )
{
    Write-Host "No installation found in: $previous"
	
    $previous = $OctopusParameters["Octopus.Action[$step].Output.Package.InstallationDirectoryPath"]
    if(!$previous -or (-not (Test-Path $previous)) )
    {
        Write-Host "No installation found in: $previous"
        Break
    }
}


$defaultExeFilename = $OctopusParameters["Octopus.Action[$step].Package.NuGetPackageId"] + ".exe"
$exeFilename = If ($customExeFilename) {$customExeFilename} Else {$defaultExeFilename}
$path = Join-Path $previous $exeFilename

Write-Host "Previous installation: $path"

Start-Process $path -ArgumentList "stop" -NoNewWindow -Wait | Write-Host
Start-Process $path -ArgumentList "uninstall" -NoNewWindow -Wait | Write-Host

Provided under the Apache License version 2.0.

Report an issue

To use this template in Octopus Deploy, copy the JSON below and paste it into the Library → Step templates → Import dialog.

{
  "Id": "b5a4ed5a-7fb3-4d0c-b4a5-02616d0ed919",
  "Name": "Uninstall TopShelf service",
  "Description": "This step can be used before unpacking a package with your TopShelf service to stop and remove the previous installation, if there is one.",
  "Version": 4,
  "ExportedAt": "2018-02-22T16:57:20.068Z",
  "ActionType": "Octopus.Script",
  "Author": "sphinxy",
  "Parameters": [
    {
      "Id": "14d4b5e5-98ff-48ee-aeba-c062e294a18c",
      "Name": "Unpackage step",
      "Label": "",
      "HelpText": "The step where you unpack the topshelf service",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "StepName"
      },
      "Links": {}
    },
    {
      "Id": "75418f4b-48fb-4475-93a1-a6d793495693",
      "Name": "Exe filename",
      "Label": "",
      "HelpText": "Name of exe file for service, if empty, package Id+\".exe.\" will be used as default",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      },
      "Links": {}
    }
  ],
  "Properties": {
    "Octopus.Action.Script.Syntax": "PowerShell",
    "Octopus.Action.Script.ScriptSource": "Inline",
    "Octopus.Action.RunOnServer": "false",
    "Octopus.Action.Script.ScriptBody": "$step = $OctopusParameters['Unpackage step']\n$previous = $OctopusParameters[\"Octopus.Action[$step].Package.CustomInstallationDirectory\"]\n$customExeFilename = $OctopusParameters['Exe filename'];\n\nif(!$previous -or (-not (Test-Path $previous)) )\n{\n    Write-Host \"No installation found in: $previous\"\n\t\n    $previous = $OctopusParameters[\"Octopus.Action[$step].Output.Package.InstallationDirectoryPath\"]\n    if(!$previous -or (-not (Test-Path $previous)) )\n    {\n        Write-Host \"No installation found in: $previous\"\n        Break\n    }\n}\n\n\n$defaultExeFilename = $OctopusParameters[\"Octopus.Action[$step].Package.NuGetPackageId\"] + \".exe\"\n$exeFilename = If ($customExeFilename) {$customExeFilename} Else {$defaultExeFilename}\n$path = Join-Path $previous $exeFilename\n\nWrite-Host \"Previous installation: $path\"\n\nStart-Process $path -ArgumentList \"stop\" -NoNewWindow -Wait | Write-Host\nStart-Process $path -ArgumentList \"uninstall\" -NoNewWindow -Wait | Write-Host\n"
  },
  "Category": "Topshelf",
  "HistoryUrl": "https://github.com/OctopusDeploy/Library/commits/master/step-templates//opt/buildagent/work/75443764cd38076d/step-templates/topshelf-uninstall.json",
  "Website": "/step-templates/b5a4ed5a-7fb3-4d0c-b4a5-02616d0ed919",
  "Logo": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAMAAACahl6sAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAMAUExURQAAAGuNkHCRlHGSlXKSlnOTl3OUlnOUl3STlnSTl3SUl3WUmHaVmXaWmHaWmXeWmniWmXiWmniXm3mYmnmYm3qZnHuanXyanHyanX2ann2cnn6cn3+coICcn4Cen4CcoICdoYGeoYKfooOgooOgo4SgooSgo4WgpIWipIaipYejpoijpYijpoikpomkp4qlqIumqIumqYymqIymqY2nqo2oqo6oq4+orJCpq5CprJCqrJGqrZKrrpKsrZKsrpSsr5StsJWusJausZivsZiwspmws5qxtJqytJyztZyztp20tp61t5+2t5+2uKC2t6C2uKG2uaK4uqO5u6S4uqS5u6W5vKW6vKa7vae8vqi8vqm9v6q+v6u+wKy/wKy/wa2/wq3Awa3Awq7Bw6/Cw7DCw7DCxLHDxbLExbLExrTFxrTFx7XGx7XGyLfHybbIybjIybjIyrnJy7rKy7rKzLvLzbzLzLzLzbzMzLzMzb3Mzr7Nz7/Ozr/Oz7/O0MDOz8DO0MHP0cHQ0MLQ0cLQ0sPR08TR0sTR08TS0sTS08XS1MbT1cbU1cjU1cjU1snV18jW1srW18rW2MvX2czX2MzX2czY2MzY2c3Y2s7Z287a2s/a28/a3NDa29Da3NHb3dLc3dLc3tPd39Pe3tPe39Td3tTd39Te3tTe39Xe4Nbf4dbg4Nbg4djg4djg4tni4tni49rj5Nvk5Nzj5Nzk5Nzk5d3l5t7l597m5t7m59/m6ODn5+Dm6OHn6eDo6OHo6eLp6uPq6uPq6+Tp6uTq6uTq6+Xr7Obs7Ofs7ejt7ejt7uju7unu7+vv8Ovw8Ovw8ezw8Ozw8e3x8u3y8u/y8/Dz8/Dz9PD09PL09fL19vL29vT29vT39/X3+Pb4+Pr7+/v8/Pz9/f///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdLIC0AAAEAdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wBT9wclAAAACXBIWXMAAAsSAAALEgHS3X78AAAAGXRFWHRTb2Z0d2FyZQBwYWludC5uZXQgNC4wLjEyQwRr7AAADAJJREFUeF7tmv1bW1cdwOdyJzO3nuy6ZAulk0G1rnNQtCvTtrYr9oWBClVkDmtt3aDosGXiJkHWMNCatGNNBrsp2Cxx6pIt0LA1SDok6dYUCrGSQtfq5tv+kus533NuCFD6MnA97jmfH3jueT+fe15vHm754GOCEOENIcIbQoQ3hAhvCBHeECK8IUR4Q4jwhhDhDSHCG0KEN4QIbwgR3hAivCFEeEOI8IYQ4Q0hwhtChDeECG8IEd4QIrwhRHhDiPCGEOENIcIbQoQ3hAhvCBHeECK8IUR4Q4jwhhDhDSHCG0KEN4QIb9yifUwQIrwhRHhDiPDGRyrSpqaxsahr4WT5Me0siqD2vBmNRgf7VS+L+GhForurqoGqxjdZ1LVINepFdsVYlKYdmjy+LT/bar33/kpvykHj0iJ271VpY9kWRXi5QTICG8Is6lqk1utFcoZZlOZMlMqygvKK7kGyVDpEI9MiXtvuvQuyxxZh2RZFItBephDQ5usVmYo4q8xQJC8tMr0B4XBZajS2CqGNAzQyLdL7FYPRaGDQdyClQ1LxSZZtUTgD4cuP4E7cgMgLgZOxMnmWiOfx23E4/8IhzdMkoU3zRDYhxVyyrx6zr5K8AsVUSgL1Py41K2jTkowIJlJ7YyKYo7VGUiQtEs8hwRJcw2tB4xVF0I5zQzHMiUEYTCWUGMGh6Gi1vHQiA0/esEjvT2eJtL1C+oaqnPj51D05264gItccgcfGCBXp90DwZTKASyVy3HbDIr7WLFJEF+lvJDUsq/kNfn53evoyq2lGZKNsrKW7+9O6SC8EfQcN8oabKBKw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",
  "$Meta": {
    "Type": "ActionTemplate"
  }
}

History

Page updated on Thursday, February 22, 2018