diff --git a/NuGet.Config b/NuGet.Config index 892f7c825..347ae77b5 100644 --- a/NuGet.Config +++ b/NuGet.Config @@ -5,6 +5,7 @@ + diff --git a/src/Microsoft.DotNet.Tools.Compiler/Program.cs b/src/Microsoft.DotNet.Tools.Compiler/Program.cs index e89c4617f..cf8c72eaa 100644 --- a/src/Microsoft.DotNet.Tools.Compiler/Program.cs +++ b/src/Microsoft.DotNet.Tools.Compiler/Program.cs @@ -141,7 +141,7 @@ namespace Microsoft.DotNet.Tools.Compiler File.WriteAllLines(rsp, cscArgs); // Execute CSC! - var result = Command.Create("csc", $"-noconfig @\"{rsp}\"") + var result = RunCsc($"-noconfig @\"{rsp}\"") .ForwardStdErr() .ForwardStdOut() .RunAsync() @@ -149,6 +149,17 @@ namespace Microsoft.DotNet.Tools.Compiler return result.ExitCode == 0; } + private static Command RunCsc(string cscArgs) + { + // Hack -- if we find csc + corerun in the app directory we should + // use that, otherwise just try to find csc on the PATH + var corerun = Path.Combine(AppContext.BaseDirectory, "CoreRun.exe"); + var csc_exe = Path.Combine(AppContext.BaseDirectory, "csc.exe"); + return File.Exists(corerun) && File.Exists(csc_exe) + ? Command.Create(corerun, $@"""{csc_exe}"" {cscArgs}") + : Command.Create("csc.exe", cscArgs); + } + private static void ApplyCompilationOptions(CompilerOptions compilationOptions, List cscArgs) { var targetType = compilationOptions.EmitEntryPoint.GetValueOrDefault() ? "exe" : "library"; diff --git a/src/Microsoft.DotNet.Tools.Compiler/project.json b/src/Microsoft.DotNet.Tools.Compiler/project.json index 29cdb86e7..05abb8573 100644 --- a/src/Microsoft.DotNet.Tools.Compiler/project.json +++ b/src/Microsoft.DotNet.Tools.Compiler/project.json @@ -8,6 +8,7 @@ }, "dependencies": { "Microsoft.NETCore.ConsoleHost": "1.0.0-*", + "Microsoft.NETCore.TestHost": "1.0.0-*", "Microsoft.NETCore.Runtime": "1.0.1-*", "System.Console": "4.0.0-*", @@ -23,7 +24,8 @@ "Microsoft.Extensions.CommandLineUtils.Sources": { "type": "build", "version": "1.0.0-*" - } + }, + "Microsoft.Net.Compilers.netcore": "1.1.0-*", }, "frameworks": { "dnxcore50": { } diff --git a/src/Microsoft.Extensions.ProjectModel/Project.cs b/src/Microsoft.Extensions.ProjectModel/Project.cs index f093077de..71922d31c 100644 --- a/src/Microsoft.Extensions.ProjectModel/Project.cs +++ b/src/Microsoft.Extensions.ProjectModel/Project.cs @@ -123,7 +123,7 @@ namespace Microsoft.Extensions.ProjectModel } // Assume the directory name is the project name if none was specified - var projectName = PathUtility.GetDirectoryName(path); + var projectName = PathUtility.GetDirectoryName(Path.GetFullPath(path)); projectPath = Path.GetFullPath(projectPath); if (!File.Exists(projectPath))