diff --git a/proposal/sandbox/dotnet/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/DotNetExecTask.java b/proposal/sandbox/dotnet/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/DotNetExecTask.java index a7a6a0345..5266c0aa0 100644 --- a/proposal/sandbox/dotnet/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/DotNetExecTask.java +++ b/proposal/sandbox/dotnet/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/DotNetExecTask.java @@ -135,10 +135,21 @@ public class DotNetExecTask extends ExecTask { // can invoke executable directly super.setExecutable(executable); } else { + boolean b = getResolveExecutable(); + // Mono wants the absolte path of the assembly + setResolveExecutable(b || isMono(vm)); super.setExecutable(vm); cmdl.createArgument(true) - .setValue(resolveExecutable(executable)); + .setValue(resolveExecutable(executable, isMono(vm))); + setResolveExecutable(b); } } } + + /** + * Whether the given vm looks like the Mono executable. + */ + protected final static boolean isMono(String vm) { + return "mono".equals(vm) || "mint".equals(vm); + } }