SS64.com is a good resource. Microsoft Docs is another excellent resource.
The PoshCode unofficial guide is our reference.
& { }
). { }
)if .. else
, for
, switch
,
etc.)Error handling in PowerShell is a bit weird, as not all errors result
in catchable exceptions by default. Setting
$ErrorActionPreference = 'Stop'
will likely do what you
want; that is, cause non-terminating errors instead to terminate. Read
An
Introduction To Error Handling in PowerShell for more
information.
The SDK NuGet package Microsoft.PowerShell.SDK
is
provided for developers to write .NET Core C# code targeting PowerShell
Core. PowerShell NuGet packages for releases starting from
v6.0.0-alpha.9 will be published to the powershell-core
myget feed.
To use the Microsoft.PowerShell.SDK
NuGet package,
declare PackageReference
tags in your .csproj
file as follows:
ItemGroup>
<PackageReference Include="Microsoft.PowerShell.SDK" Version="6.0.0-beta.9" />
<PackageReference Include="Microsoft.PowerShell.Commands.Diagnostics" Version="6.0.0-beta.9" />
<PackageReference Include="Microsoft.WSMan.Management" Version="6.0.0-beta.9"/>
<ItemGroup> </
There are few common issues with the build. The easiest way to
resolve most issues with the build is to run
Start-PSBuild -Clean
.
If package dependencies were changed in any
project.json
, you need to manually run
dotnet restore
to update your local dependency graphs.
Start-PSBuild -Restore
can automatically do this.
Start-PSBuild
automatically calls
Start-ResGen
on the very first run. On subsequent runs, you
may need to explicitly use Start-PSBuild -ResGen
command.
Try it, when you see compilation error about *strings.
More details about resource.
Similar to -ResGen
parameter, there is
-TypeGen
parameter that triggers regeneration of type
catalog.
Start-PSBuild
tell me to update dotnet
?We depend on the latest version of the .NET CLI, as we use the output
of dotnet --info
to determine the current runtime
identifier. Without this information, our build function can't know
where dotnet
is going to place the build artifacts.
You can automatically install this using
Start-PSBootstrap
. However, you must first manually
uninstall other versions of the CLI.
If you have installed by using any of the following means:
MSI
exe
apt-get
pkg
You must manually uninstall it.
Additionally, if you've just unzipped their binary drops (or used their obtain scripts, which do essentially the same thing), you must manually delete the folder, as the .NET CLI team re-engineered how their binaries are setup, such that new packages' binaries get stomped on by old packages' binaries.