diff --git a/lib/src/executable.dart b/lib/src/executable.dart index 863f306f672e01c03349298ddf37efffcd3faa6c..62c33a1c6c1499296c65354e5990e7c0bbe735a7 100644 --- a/lib/src/executable.dart +++ b/lib/src/executable.dart @@ -115,7 +115,12 @@ Future<int> runExecutable(Entrypoint entrypoint, String package, // example, it may not have the right packages directory itself. if (executableUrl.scheme == 'file' || executableUrl.scheme == '') { // TODO(nweiz): use a .packages file once sdk#23369 is fixed. - vmArgs.add('--package-root=${p.toUri(entrypoint.packagesDir)}'); + + // We use an absolute path here not because the VM insists but because it's + // helpful for the subprocess to be able to spawn Dart with + // Platform.executableArguments and have that work regardless of the working + // directory. + vmArgs.add('--package-root=${p.toUri(p.absolute(entrypoint.packagesDir))}'); } vmArgs.add(executableUrl.toString());