I have the following post-build event:
powershell Set-ExecutionPolicy Unrestricted
powershell -file "$(SolutionDir)Obfuscation\_obfuscate.ps1" "$(SolutionDir)" "$(ProjectDir)"
powershell Set-ExecutionPolicy Restricted
and PS script beginning with:
param
(
[string]$slnDir,
[string]$projectDir
)
when MSBuild trys to run it, my first parameter "$(SolutionDir)"
is splitted in two parameters because the solution path contains a space character: D:\Projects\Dion2 Mercurial\repo\Dion2Web\
. So my script receives D:\Projects\Dion2
as the first parameter and Mercurial\repo\Dion2Web\
as the second one.
What is the correct way to send those parameters to the script file?
Note: such post-build scripts works fine when script has only one parameter.
Try adjusting your post build event to use the following:
powershell -file "$(SolutionDir)Obfuscation\_obfuscate.ps1" -slnDir '$(SolutionDir)' -projectDir '$(ProjectDir)'
来源:https://stackoverflow.com/questions/15929615/post-build-powershell-script