CreateProperty.Value Property
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
The in/out property value.
This API supports the product infrastructure and is not intended to be used directly from your code.
public:
property cli::array <System::String ^> ^ Value { cli::array <System::String ^> ^ get(); void set(cli::array <System::String ^> ^ value); };
[Microsoft.Build.Framework.Output]
public string[] Value { get; set; }
[Microsoft.Build.Framework.Output]
public string[] Value { [System.Runtime.TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] get; [System.Runtime.TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] set; }
[<Microsoft.Build.Framework.Output>]
member this.Value : string[] with get, set
[<Microsoft.Build.Framework.Output>]
[<get: System.Runtime.TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")>]
[<set: System.Runtime.TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")>]
member this.Value : string[] with get, set
Public Property Value As String()
The value to copy to the new property
- Attributes
So ... why is this a string[] instead of a string? Basically if the project author passed in:
CreateProperty Value="Clean;Build" Output TaskParameter="Value" PropertyName="MyTargetsToBuild" /CreateProperty
We need to respect the semicolon that they put in the value, and need to treat this exactly as if they had done:
PropertyGroup MyTargetsToBuild="Clean;Build" /PropertyGroup
If we make this parameter a "string", then the engine will escape the value on the way out from the task back to the engine, creating a property that is set to "Clean%3BBuild", which is not what the user wanted.