After weeks of posting, forums, research etc... And trying this post it turns out that the legacy string array is what functions.
I wanted to
- Provide defaults in the template, so that the consumer could just leave it if they didn't want anything more specific.
- Allow for full customizations, adding, editing, removing.
- Visibility of what's set for anyone looking at the build definition, not just people with a special assembly loaded.
- creating my own custom editor and adding it to the metadata
Once I finally changed the variable name and tried String Array. All of the sudden, everything worked just fine. Alternatively, clicking refresh in team explorer -> Edit Build Definition -> Process tab -> Show details arrow -> click refresh is supposed to work. I wound up renaming the variable.
So I went back to try all the types I listed and a few more... and the first 3 worked:
- No custom editor specified
- String Array
What I want is a dictionary<string,string> but I'm getting pretty sure there's no support for it outside of a custom package deployed to all machines that want to view the arguments or edit them.