GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — PowerShell/docs/FAQ.md at master · PowerShell/PowerShell

Expand file tree

/

FAQ.md

Copy path
More file actions
More file actions

Latest commit

 

History

History
History
116 lines (82 loc) · 4.57 KB
/

FAQ.md

Copy path

File metadata and controls

116 lines (82 loc) · 4.57 KB
Raw
Copy raw file
Download raw file
Outline
Edit and raw actions

Frequently Asked Questions

Where can I learn PowerShell's syntax?

  • What is PowerShell?
  • Discover PowerShell
  • PowerShell 101
  • PowerShell learning resources

What are the best practices and styles?

The PoshCode unofficial guide is our reference.

What are PowerShell's scoping rules?

  • Variables are created in your current scope unless explicitly indicated.
  • Variables are visible in a child scope unless explicitly indicated.
  • Variables created in a child scope are not visible to a parent unless explicitly indicated.
  • Variables may be placed explicitly in a scope.

Things that create a scope

  • about_Functions_Advanced
  • about Operators - Call operator (& { })
  • about Scopes

Things that operate in the current scope

  • about Operators - Dot source operator (. { })
  • about Language Keywords (if .. else, for, switch, etc.)

Why didn't an error throw an exception?

Error handling in PowerShell is unique, 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 of terminating. Read the GitHub issue for more information.

Where do I get the PowerShell Core SDK package?

The SDK NuGet package Microsoft.PowerShell.SDK is provided for developers to write C# code targeting PowerShell. PowerShell NuGet packages are published to Microsoft.PowerShell.SDK on NuGet.org.

To use the Microsoft.PowerShell.SDK NuGet package, declare PackageReference tags in your .csproj file as follows:

<ItemGroup>
  <PackageReference Include="Microsoft.PowerShell.SDK" Version="7.3.5" />
  <PackageReference Include="Microsoft.PowerShell.Commands.Diagnostics" Version="7.3.5" />
  <PackageReference Include="Microsoft.WSMan.Management" Version="7.3.5"/>
</ItemGroup>

Why did my build fail?

There are few common issues with the build. The easiest way to resolve most issues with the build is to run Start-PSBuild -Clean.

Dependency changed

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.

Resource changed

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.

TypeGen

Similar to -ResGen parameter, there is -TypeGen parameter that triggers regeneration of type catalog.

Why did 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.

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.