我有一個PowerShell腳本是如下:爲什麼在此PowerShell&符號命令中錯誤地解釋了參數?
[CmdletBinding()]
param(
# Other parameters removed for brevity
[string] $MSBuildParameters = ""
)
# Other syntax removed for brevity
& $MSBuild $Solution /p:Configuration=$Configuration /p:Platform="$BuildPlatform" /nologo /m /v:m /nr:false $MSBuildParameters
$MSBuild
爲Get-Command "MSBuild.exe"
$Solution
的ApplicationInfo
一個實例是一個.sln
或.csproj
文件的路徑。$MSBuildParameters
包含零個或多個要逐字傳遞給命令行的參數。& .\Build.ps1 -MSBuildParameters "/p:DeployOnBuild=true /p:PublishProfile=MyProfile"
然而,當命令執行時,MSBuild的blaps,出現以下錯誤:
error MSB4100: Expected "$(_DeployOnBuild)" to evaluate to a boolean instead of "true /p:Publ ishProfile=FolderProfile", in condition "'$(PipelineDeployPhaseAfterTargets)' == '' And $(_DeployOnBuild)
這是怎麼回事
的$ MSBuildParameters變量如下從另一個PowerShell腳本中傳遞在這?
也許值得注意的是,如果這些命令行參數是顯式編寫的,而不是通過$ MSBuildParameters傳入,那麼這些命令行參數可以正常工作。 – Kivin
您是否嘗試過將它作爲字符串數組傳遞('&。\ Build.ps1 -MSBuildParameters「/ p:DeployOnBuild = true」,「/ p:PublishProfile = MyProfile」'),並將參數更改爲'[string [ ]] $ MSBuildParameters'? – TheMadTechnician
@ TheMadTechnician與問題中描述的行爲相同。 – Kivin