4

Visual Studio のビルド イベントで PowerShell スクリプトを使用したいのですが、Visual Studio 自体で定義されたマクロを使用する必要があります。

これは私のpowershellスクリプトのサンプルです:

"Updating version for Project:"
"$ProjectDir"

次に、プロジェクトのビルド前イベントで、次のように呼び出します。

powershell.exe -file "$(SolutionDir)Resources\UpdateVersion.ps1" -path $(SolutionDir)

プロジェクトをビルドすると、スクリプトは正しく呼び出されますが、プロジェクト パスを含む文字列が空です。

すべてのビジュアル スタジオ マクロを、スクリプト引数として明示的に渡さずに powershell スクリプトに渡す方法はありますか (多くのマクロを使用する必要があり、面倒です)。

4

1 に答える 1

0

遅い答えですが、誰かの役に立てば幸いです。

ビルド前イベントでは、「-path」引数を使用して $(SolutionDir) を渡していますが、PowerShell スクリプトでは「-path」引数を使用しません。「$ProjectDir」として参照しようとしたようです。

PowerShell で名前付き引数を使用する方法を説明することは、この質問の範囲外であるため、位置引数の使用に切り替えます。

PowerShell スクリプトを次のように変更します。

param($solution, $project)
Write-Host $solution
Write-Host $project

次に、ビルド イベントを次のように変更します。

powershell.exe -file "$(SolutionDir)Resources\UpdateVersion.ps1" $(SolutionDir) $(ProjectDir)
于 2022-01-29T13:28:51.360 に答える