I run a task sending email-notification.
Task is "MSBuild.ExtensionPack.Communication.Email" from "MSBuild Extension Pack".
It has several recipients passed as a list with a ";" (semicolon) delimiter.
So, step is msbuild task, properties are
EmailSender=Quickbuild <
quickbuild@DRCIS-2008>
EmailRecipient="
recipient1@domain.com;
recipient2@domain.com" (yes, already quoted, as QB itself does not quote msbuild properties)
AnyOtherProperty=Value
run
step fails
17:54:10,501 DEBUG - Executing command: msbuild.exe /nologo /t:sendmail "/property:EmailSender=Quickbuild <
quickbuild@DRCIS-2008>;EmailRecipient="
recipient1@domain.com;
recipient2@domain.com";AnyOtherProperty=Value" /noconsolelogger "/l:QBLogger,C:\Program Files\QBAgent\framework\configuration\org.eclipse.osgi\com\pmease\quickbuild\plugin\builder\msbuild\PMEase.QuickBuild.MSBuild.Logger.dll;v=detailed" <PROJECT_FILE>
17:54:10,592 ERROR - MSBUILD : error MSB1006: Property is not valid.
17:54:10,592 INFO - Switch:
recipient2@domain.com
Obviously, MSBuild uses ";" as a properties delimiter, too.
And it does respect quoted values "inside" one /property switch
For example, if I run
msbuild.exe /nologo /t:sendmail /property:EmailSender=quickbuild@DRCIS-2008;EmailRecipient="
recipient1@domain.com;
recipient2@domain.com"
or even
msbuild.exe /nologo /t:sendmail /property:EmailSender="Quickbuid <
quickbuild@DRCIS-2008>";EmailRecipient="
recipient1@domain.com;
recipient2@domain.com"
they will succeed
but if I set (in QB task) EMailSender property to a value containing spaces (EmailSender=Quickbuild <
quickbuild@DRCIS-2008>), build will fail
as all the msbuild parameter "/property:..." is whole quoted
Fortunately, I can workaround this by using EmailSender property without spaces, but generally I consider this as a bug.