2017-06-27 6 views
2

パッケージマネージャコンソールで実行するためのPowerShellスクリプトを作成しています。パッケージマネージャコンソールで$profileが返す場所にスクリプトを追加することはできますが、Visual Studioの新しいインスタンスを開くことなくスクリプトを変更することができません。パッケージマネージャコンソールでのスクリプトのリフレッシュ

このarticleによると、あなたは& $profileを入力して、スクリプトをリロードすることができるはずです。

のVisual Studioは、Visual Studioは、すべての変更を検出しません開いているときに、このユーザープロファイルに変更を加えます。パッケージマネージャコンソールで& $ profileと入力して、プロファイルをリロードすることができます。

私は新鮮なVisual Studioのセッション私はスクリプトの変更を加えるたびに開くように私を必要とする、私のスクリプトは、構文エラーはありませんが、それはコンソールセッションへの変更をロードしない確認するために& $profileを使用することができます。私は私のプロファイルスクリプトを設定している場合

たとえば、:

function foo{ 
    Write-Output "bar" 
} 

し、Visual Studioとパッケージマネージャコンソールを開き、私はプロンプトで「foo」を入力し、バック「バー」を得ることができます。 「function」を「functionX」に変更して& $profileを実行すると、コンソールにParserErrorが表示されます。しかし、スクリプトの本体をWrite-Output "baz"に変更し、コンソールプロンプトで& $profileを実行してからfooと入力すると、 "bar"に戻ります。コードの変更は、Visual Studioの新しいインスタンスでのみ取得されます。

Visual Studioにこの動作や新しいスクリプトを強制的に読み込む設定が変更されていますか?

+0

私はそれが再びそのスコープで実行してすべてを行う必要が「ドットソース」 '$のprofile'であると考えています:'。 $ profile' – BenH

+0

これはトリックでした!私が受け入れることができるように答えとして追加してください。 –

答えて

1

ドットソーシングを行わずにスクリプトを実行すると、そのスクリプトで定義された関数、関数などが親スコープに追加されません。コマンドの前にピリオドを追加すると、スクリプトのソースが表示され、その親スコープに物が追加されます。

あなたの特定のケースでは、コマンドは次のようになります。

. $profile 
関連する問題