Last active
February 7, 2024 12:45
-
-
Save rajbos/b148e9833a5d08165188dbe00cc32301 to your computer and use it in GitHub Desktop.
Use dotnet tool to find out if a specific tool is installed on an environment
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Preface: | |
# dotnet tool install -g will return an error code when the tool is already installed in the system (at the same location) | |
# adding a test like below, will prevent the error | |
# this is mostly needed in a CI/CD environment where you don't want to break your pipeline if the tool was installed already. | |
# find if stryker is installed | |
$list = (dotnet tool list -g) | |
# echo the list | |
# $list | |
$strykerFound = ($list | Where-Object {$_.Split(' ')[0] -eq "dotnet-stryker"}) | |
if ($null -ne $StrykerFound) { | |
Write-Host "Installing Stryker" | |
dotnet tool install dotnet-stryker -g | |
} | |
else { | |
Write-Host "Stryker is already installed" | |
} | |
# stop powershell from reporting an error code | |
$global:LASTEXITCODE = 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Yea 100% understood, I came from a similar problem and your blog post.
To be clear, I meant install it into a local path that is unique (e.g. created/destroyed by your CI/CD pipeline) each run, therefore avoiding all the additional check you're doing.