dotnet/msbuild
Auf GitHub ansehenProvide a method to execute an external command without using a shell
Open
#399 geöffnet am 10. Dez. 2015
help wantedneeds-designtriaged
Repository-Metriken
- Stars
- (5.062 Stars)
- PR-Merge-Metriken
- (Durchschn. Merge 11T 7h) (125 gemergte PRs in 30 T)
Beschreibung
The Exec task always spawns a shell to invoke the external command. This is convenient, but non-portable, insecure (though not exploitable here), and requires non-portable escaping.
A better solution is to provide a way to execute an external command without using a shell. It should have the following properties:
- Lists are respected.
- Any character can be passed to an external command. No manual escaping required.
- Special characters in property values do not cause problems.
- No shell is invoked, unless the external command is the shell.
- It should be possible to pass multiple arguments to the shell
- The syntax should be something other than requiring a seperate XML element per argument.