Overriding precedence for properties in MSBuild

 

You can set the value of property in the following manner

  1. pass the value in proj/targets file inside PropertyGroup tag
  2. pass the value in the msbuild command line using /p switch
  3. pass the value of the property in rsp file using /property switch
  4. pass the value by using CreateProperty task

Precedence order

  1. Value specified using CreateProperty task will always have the highest precedence.
  2. Value specified in task/targets file under PropertyGroup tag will have the least precedence
  3. Value specified using command line or rsp file have equal precedence. The one passed later will override the earlier one. For example if rsp file set Name = “RspName” and the command line set Name = “CmdName”.
    1. Calling msbuild @rspfile /p:Name=CmdName will set the value of Name property to CmdName
    2. Calling msbuild /p:Name=CmdName @rspfile will set the value of Name property to RspName