{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/cli/issues/2483","repository_url":"https://api.github.com/repos/dotnet/cli","labels_url":"https://api.github.com/repos/dotnet/cli/issues/2483/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/cli/issues/2483/comments","events_url":"https://api.github.com/repos/dotnet/cli/issues/2483/events","html_url":"https://github.com/dotnet/cli/issues/2483","id":148207918,"number":2483,"title":"Consider Performing C# Compilation in a Single Dotnet Process","user":{"login":"brianrob","id":6210322,"avatar_url":"https://avatars.githubusercontent.com/u/6210322?v=3","gravatar_id":"","url":"https://api.github.com/users/brianrob","html_url":"https://github.com/brianrob","followers_url":"https://api.github.com/users/brianrob/followers","following_url":"https://api.github.com/users/brianrob/following{/other_user}","gists_url":"https://api.github.com/users/brianrob/gists{/gist_id}","starred_url":"https://api.github.com/users/brianrob/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brianrob/subscriptions","organizations_url":"https://api.github.com/users/brianrob/orgs","repos_url":"https://api.github.com/users/brianrob/repos","events_url":"https://api.github.com/users/brianrob/events{/privacy}","received_events_url":"https://api.github.com/users/brianrob/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dotnet/cli/labels/blocking-release","name":"blocking-release","color":"e11d21"}],"state":"open","locked":false,"assignee":{"login":"eerhardt","id":8291187,"avatar_url":"https://avatars.githubusercontent.com/u/8291187?v=3","gravatar_id":"","url":"https://api.github.com/users/eerhardt","html_url":"https://github.com/eerhardt","followers_url":"https://api.github.com/users/eerhardt/followers","following_url":"https://api.github.com/users/eerhardt/following{/other_user}","gists_url":"https://api.github.com/users/eerhardt/gists{/gist_id}","starred_url":"https://api.github.com/users/eerhardt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eerhardt/subscriptions","organizations_url":"https://api.github.com/users/eerhardt/orgs","repos_url":"https://api.github.com/users/eerhardt/repos","events_url":"https://api.github.com/users/eerhardt/events{/privacy}","received_events_url":"https://api.github.com/users/eerhardt/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/dotnet/cli/milestones/3","html_url":"https://github.com/dotnet/cli/milestones/1.0.0-rc2","labels_url":"https://api.github.com/repos/dotnet/cli/milestones/3/labels","id":1343748,"number":3,"title":"1.0.0-rc2","description":"","creator":{"login":"Sridhar-MS","id":9423246,"avatar_url":"https://avatars.githubusercontent.com/u/9423246?v=3","gravatar_id":"","url":"https://api.github.com/users/Sridhar-MS","html_url":"https://github.com/Sridhar-MS","followers_url":"https://api.github.com/users/Sridhar-MS/followers","following_url":"https://api.github.com/users/Sridhar-MS/following{/other_user}","gists_url":"https://api.github.com/users/Sridhar-MS/gists{/gist_id}","starred_url":"https://api.github.com/users/Sridhar-MS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sridhar-MS/subscriptions","organizations_url":"https://api.github.com/users/Sridhar-MS/orgs","repos_url":"https://api.github.com/users/Sridhar-MS/repos","events_url":"https://api.github.com/users/Sridhar-MS/events{/privacy}","received_events_url":"https://api.github.com/users/Sridhar-MS/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":197,"state":"open","created_at":"2015-10-08T01:23:25Z","updated_at":"2016-04-14T23:21:28Z","due_on":"2016-04-29T07:00:00Z","closed_at":null},"comments":8,"created_at":"2016-04-13T23:09:27Z","updated_at":"2016-04-14T23:31:17Z","closed_at":null,"body":"CLI Version: 1.0.0-rc2-002357\r\n\r\nWhen compiling a C# hello world app using the CLI, it takes 3 processes to perform the \"dotnet build\" step.\r\n\r\n1. dotnet build\r\n2. dotnet compile-csc [spawned dotnet build]\r\n3. dotnet csc.dll [spawned by dotnet compile-csc]\r\n\r\nEach of these comes with the overhead of starting a new process, booting the runtime, loading dependencies and JITTing some of them before work can proceed.  My understanding is that this due to the extensibility model, but I'd like to believe that for a target such as C# where everything is contained in the SDK and shared framework that we could get this down to one process and get rid of the overhead."},"comment":{"url":"https://api.github.com/repos/dotnet/cli/issues/comments/210202282","html_url":"https://github.com/dotnet/cli/issues/2483#issuecomment-210202282","issue_url":"https://api.github.com/repos/dotnet/cli/issues/2483","id":210202282,"user":{"login":"eerhardt","id":8291187,"avatar_url":"https://avatars.githubusercontent.com/u/8291187?v=3","gravatar_id":"","url":"https://api.github.com/users/eerhardt","html_url":"https://github.com/eerhardt","followers_url":"https://api.github.com/users/eerhardt/followers","following_url":"https://api.github.com/users/eerhardt/following{/other_user}","gists_url":"https://api.github.com/users/eerhardt/gists{/gist_id}","starred_url":"https://api.github.com/users/eerhardt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eerhardt/subscriptions","organizations_url":"https://api.github.com/users/eerhardt/orgs","repos_url":"https://api.github.com/users/eerhardt/repos","events_url":"https://api.github.com/users/eerhardt/events{/privacy}","received_events_url":"https://api.github.com/users/eerhardt/received_events","type":"User","site_admin":false},"created_at":"2016-04-14T23:31:17Z","updated_at":"2016-04-14T23:31:17Z","body":"Thanks, @jaredpar.  Looking more into it, I don't think I can get a reference to the csc.dll from my project.json.  It looks like we are taking the `csc.exe` that ships in the runtimes folder of `Microsoft.Net.Compilers.netcore` and copying it to `csc.dll`.  I don't think there is a NuGet package that can give me this reference.\r\n\r\nSo maybe the 2nd route would be the way to go.  Can you point me in the right direction?"}}