PowerShell / PowerShell/PowerShellEditorServices

Add extra installation instructions about administrator privileges and PSCore6 modules

オープン
#631 コメント 4 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

Area-Documentation Issue-Enhancement
主要言語
C#
スター
767
フォーク
266
平均マージ
3日 16時間
マージ済み PR(30日)
1

説明

I was trying to build PowerShellEditorServices on my machine with the following $PSVersionTable:

Name                           Value
----                           -----
PSVersion                      6.0.1
PSEdition                      Core
GitCommitId                    v6.0.1-235-g3f7494e5435bd776ad04ef426c00874410924486
OS                             Microsoft Windows 10.0.16299
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0
Install-Module not found

Due to self-hosting on PSCore6, there was no Install-Module cmdlet. It might be worth having a note somewhere (possibly here or in the PowerShell README?) to make sure people use Start-PSBuild -PSModuleRestore when building PSCore6 and get the PowerShellGet module.

Invoke-Build: IsBypassed not supported error

Then at the step where Invoke-Build is used, I got the following error:

PS> Invoke-Build Build
Build Build C:\Users\roholt\Documents\PowerShellEditorServices\PowerShellEditorServices.build.ps1
Task /Build/SetupDotNet

### Installing .NET CLI 2.0.0...

C:
dotnet-install: Downloading link: https://dotnetcli.azureedge.net/dotnet/Sdk/2.0.0/dotnet-sdk-2.0.0-win-x64.zip
dotnet-install: Cannot download: https://dotnetcli.azureedge.net/dotnet/Sdk/2.0.0/dotnet-sdk-2.0.0-win-x64.zip
dotnet-install: Downloading legacy link: https://dotnetcli.azureedge.net/dotnet/Sdk/2.0.0/dotnet-dev-win-x64.2.0.0.zip
ERROR: Exception calling "IsBypassed" with "1" argument(s): "Operation is not supported on this platform."
At C:\Users\roholt\AppData\Local\Temp\dotnet-install.ps1:175 char:20
+ ...          if($DefaultProxy -and (-not $DefaultProxy.IsBypassed($Uri))) ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
At C:\Users\roholt\Documents\PowerShellEditorServices\PowerShellEditorServices.build.ps1:21 char:1
+ task SetupDotNet -Before Clean, Build, TestHost, TestServer, TestProt ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
At C:\Users\roholt\Documents\PowerShellEditorServices\PowerShellEditorServices.build.ps1:129 char:1
+ task Build {
+ ~~~~~~~~~~~~
Build FAILED. 2 tasks, 1 errors, 0 warnings 00:00:04.8974401
Exception calling "IsBypassed" with "1" argument(s): "Operation is not supported on this platform."
At C:\Users\roholt\AppData\Local\Temp\dotnet-install.ps1:175 char:20
+ ...          if($DefaultProxy -and (-not $DefaultProxy.IsBypassed($Uri))) ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : PlatformNotSupportedException

I needed some trial and error to work out that I just needed to be running an administrator session. For the sake of completeness, there is a fixed dotnet-cli issue that looks like this, but we only need administrator privileges here.

PowerShell snippets in README

Also, the PowerShell snippets in the instructions are inconsistent about giving a prompt and we should make them agree. Not including a prompt makes copy-pasting easier, but including a prompt gives more information on where the user should be executing commands. The ideal is including the prompt and having it unselectable -- GitHub does this in their SSH key pages using ::before in CSS, but that can only be set once. It may not be possible in GitHub Markdown, but I've put an attempt below that doesn't work in preview, but may be a start.

 PS C:\path\to\dir> Invoke-Command "do something"

Filing this as an issue chiefly to document it for anyone else who encounters problems but also for discussion.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

インストール手順と、Start-PSBuild、PowerShell スニペット、Invoke-Build を扱う README のセクションから始めます。管理者セッションの必要性と PSCore6 モジュールの復元手順を文書化し、その後、コマンド例に一貫性を持たせます。報告されたセットアップの問題とプロンプト形式の混乱が扱われれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
powershell
領域
documentation
issue の種類
ドキュメント
難易度
2/5
見積もり時間
1〜3時間
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
42/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。