Windows PowerShellでVisual Studioコマンドラインツールを実行する


10

cmd.exeでは、単に実行します

%VS80COMNTOOLS%\vsvars32.bat

Visual Studioコマンドラインツール(cl、link、mtなど)を実行するための環境を設定します。Powershellでこれらのツールを実行するための環境をどのようにセットアップできるのかと思います。確かに、を使用してバッチファイルを実行することが可能です

start-process $env:vs80comntools\vsvars32.bat

しかし、プロセスが終了すると、環境は失われます。私はすでにSystem.Diagnostics.StartProcessInfoでいくつかの実験を行いました、すなわち

$proc = start-process $env:vs80comntools\vsvars32.bat -passthru
$procInfo = proc.StartInfo

から環境を取得しますが$procInfo.EnvironmentVariables、これも機能しません。

Powershellで環境をセットアップする他の方法はありますか?

回答:



2

PSCX Import-VisualStudioVarsは、何をするかを複製しようとする大きなスクリプトですvsvars32.bat。問題は、それらを同期させるには努力が必要であり、バグの原因となる可能性があることです。

私はvsvars32.batに依存してそれを実行し、envをインポートすることを好みます。vars。PowerShellに。これはInvoke-CmdScript.ps1で行います。


返信いただきありがとうございます。Import-VisualStudioVarが多かれ少なかれvsvars32.batの実行を実際に実行するのではなく、モックすることはすでに検討しました。ただし、vsvars32.batが特定のバージョンのVSで非常に安定していることを確認すると、両方のオプションの結果を同期させるという実際の問題はないと思います。それでも、あなたの提案を試してみます。
Uwe Honekamp、2010

0

PowerShellギャラリーのもう1つのオプション:posh-vs Visual StudioコマンドラインツールをPowerShellで使用できるようにします。Visual Studio 2017および2015をサポートします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.