Go to file
Dongbo Wang 3a21d4c3df Search the assembly cache kept by ExecutionContext for type resolution. (#3327)
Our assembly cache contains assemblies that are explicitly loaded by powershell egine, such as via module loading or the assembly entries from InitialSessionState. We should search it before searching all loaded assemblies to give preference to resolve a type against the assemblies contained in the cache, so that in case there is a conflict, we might have a preferred assembly to use for a type resolution.

Changes:
- Search from context.AssemblyCache.Values before search from all loaded assemblies.
- Skip assemblies that we already searched and found no matching type.
- Skip checking PS types kept in the scope and type accelerators when it's not necessary.
2017-03-17 13:19:31 -07:00
.github Update the PR template to remove links (#3193) 2017-02-23 16:40:20 -08:00
.vscode Fix VS Code debug output (#2425) 2016-10-05 10:47:33 -07:00
assets corrected use of PSModulePath casing to be consistent with Windows PowerShell (#3255) 2017-03-15 12:04:28 -07:00
demos corrected use of PSModulePath casing to be consistent with Windows PowerShell (#3255) 2017-03-15 12:04:28 -07:00
docker Add OpenSUSE 13.2 release Dockerfile (#3303) 2017-03-10 16:36:33 -08:00
docs Remove opensuse 13.2 because it is not supported by dotnet or opensuse (#3351) 2017-03-17 09:21:38 -07:00
src Search the assembly cache kept by ExecutionContext for type resolution. (#3327) 2017-03-17 13:19:31 -07:00
test Search the assembly cache kept by ExecutionContext for type resolution. (#3327) 2017-03-17 13:19:31 -07:00
tools Add openSUSE support in download.sh (#3306) 2017-03-10 16:54:47 -08:00
.gitattributes Set merge=union for changelog 2016-08-04 14:57:13 -07:00
.gitignore Rename Publish-EchoArgs to Publish-PSTestTools 2016-09-13 13:37:42 -07:00
.gitmodules Move modules shared between frameworks in Module/Shared folder 2016-07-01 12:20:48 -07:00
.spelling Update docs for alpha.17 release (#3298) 2017-03-10 11:32:19 -08:00
.travis.yml Add AppImage to CI 2017-02-17 11:09:36 -08:00
appveyor.yml Update docs for alpha.17 release (#3298) 2017-03-10 11:32:19 -08:00
build.psm1 corrected use of PSModulePath casing to be consistent with Windows PowerShell (#3255) 2017-03-15 12:04:28 -07:00
build.sh build: Update build.sh to run fully manual build (#2832) 2016-12-28 13:59:51 -08:00
CHANGELOG.md Update docs for alpha.17 release (#3298) 2017-03-10 11:32:19 -08:00
codecov.yml Make OpenCover merge and upload more reliable/usable (#3078) 2017-02-01 15:45:03 -08:00
global.json Add global.json for dnu restore from root 2015-11-24 15:07:55 -08:00
LICENSE.txt add line breaks to license 2016-08-01 15:48:54 -07:00
license_thirdparty_proprietary.txt Add AppImage tooling 2017-02-17 11:07:10 -08:00
nuget.config use global nuget package cache (#2987) 2017-01-17 13:00:52 -08:00
powershell.sln Add '<Link>' tag to '<Compile>', '<None>' and '<EmbeddedResource>' tags to make those items look similar as when the *.csproj files were in the original project folders. (#2519) 2016-10-21 17:04:05 -07:00
README.md Remove opensuse 13.2 because it is not supported by dotnet or opensuse (#3351) 2017-03-17 09:21:38 -07:00
ThirdPartyNotices.txt grammer fix (#1989) 2016-08-21 08:19:57 -07:00

logo PowerShell

Welcome to the PowerShell GitHub Community! PowerShell is a cross-platform (Windows, Linux, and macOS) automation and configuration tool/framework that works well with your existing tools and is optimized for dealing with structured data (e.g. JSON, CSV, XML, etc.), REST APIs, and object models. It includes a command-line shell, an associated scripting language and a framework for processing cmdlets.

New to PowerShell?

If you are new to PowerShell and would like to learn more, we recommend reviewing the getting started documentation.

Get PowerShell

You can download and install a PowerShell package for any of the following platforms.

Platform Downloads How to Install
Windows 10 / Server 2016 (x64) .msi Instructions
Windows 8.1 / Server 2012 R2 (x64) .msi Instructions
Windows 7 (x64) .msi Instructions
Windows 7 (x86) .msi Instructions
Ubuntu 16.04 .deb Instructions
Ubuntu 14.04 .deb Instructions
CentOS 7 .rpm Instructions
Arch Linux Instructions
Many Linux distributions .AppImage Instructions
macOS 10.11 .pkg Instructions
Docker Instructions

To install a specific version, visit releases.

Community Dashboard

Dashboard with visualizations for community contributions and project status using PowerShell, Azure, and PowerBI.

For more information on how and why we built this dashboard, check out this blog post.

Chat Room

Want to chat with other members of the PowerShell community?

We have a Gitter Room which you can join below.

Join the chat at https://gitter.im/PowerShell/PowerShell

There is also the community driven PowerShell Slack Team which you can sign up for at Slack Signup.

Building the Repository

Linux Windows macOS
Instructions Instructions Instructions

If you have any problems building, please consult the developer FAQ.

Build status of master branches

AppVeyor (Windows) Travis CI (Linux / macOS)
av-image tv-image

Build status of nightly builds

AppVeyor (Windows) Travis CI (Linux / macOS) Code Coverage Status
av-nightly-image tv-nightly-image cc-image

Downloading the Source Code

The PowerShell repository has a number of other repositories embedded as submodules.

To make things easy, you can just clone recursively:

git clone --recursive https://github.com/PowerShell/PowerShell.git

If you already cloned but forgot to use --recursive, you can update submodules manually:

git submodule update --init

See working with the PowerShell repository for more information.

Developing and Contributing

Please see the Contribution Guide for how to develop and contribute.

If you have any problems, please consult the known issues, developer FAQ, and GitHub issues. If you do not see your problem captured, please file a new issue and follow the provided template. If you are developing .NET Core C# applications targeting PowerShell Core, please check out our FAQ to learn more about the PowerShell SDK NuGet package.

Also make sure to check out our PowerShell-RFC repository for request-for-comments (RFC) documents to submit and give comments on proposed and future designs.

PowerShell is licensed under the MIT license.

Governance

Governance policy for PowerShell project is described here.

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.