Powershell シェルと cmd ウィンドウから素晴らしく機能する powershell スクリプトがあり、Visual Studio のビルド後のステップから起動しようとしています。
これを昼食にして正常に実行しようとするいくつかの異なるバリエーションの後、現在、VS2010 の「ビルド後のイベント」の「コマンド ライン」プロパティには次の構成があります。
これはビルド後の構成ではすべて 1 行ですが、読みやすくするためにここではテキストを折り返しています。
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NonInteractive
-File "$(SolutionDir)testScript.ps1"
-ConfigurationFile "$(SolutionDir)configuration.txt"
-SolutionDir "$(SolutionDir)"
-Platform "$(Platform)"
-Configuration "$(Configuration)"
PowerShell スクリプトには、ConfigurationFile、SolutionDir、Platform、および Configuration の 4 つの必須パラメーターが必要です。ご覧のとおり、上記の各パラメーターを指定し、値のスペースを保護するためにそれらを二重引用符で囲んでいます。
VS2010 では、SolutionDir マクロはスペースを含むパスに展開され、Platform は "Release" に展開され、Configuration は "Win32" に展開されます。
ビルド後のステップが実行されると、次のエラーが表示されます。
testScript.ps1 : Cannot process command because of one or more missing
mandatory parameters: Platform Configuration.
+ CategoryInfo : InvalidArgument: (:) [testScript.ps1],
ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingMandatoryParameter,testScript.ps1
...私が見逃している可能性のあるアイデアはありますか? どうやら $(SolutionDir) でスクリプトを見つけることができますが、コマンド ライン引数のいずれかを取得しているかどうかはわかりません。$(SolutionDir) の末尾の「\」文字がこれをハングアップさせている可能性はありますか?