{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/roslyn/issues/9483","repository_url":"https://api.github.com/repos/dotnet/roslyn","labels_url":"https://api.github.com/repos/dotnet/roslyn/issues/9483/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/roslyn/issues/9483/comments","events_url":"https://api.github.com/repos/dotnet/roslyn/issues/9483/events","html_url":"https://github.com/dotnet/roslyn/issues/9483","id":138464847,"number":9483,"title":"Hardcoded compiler path in Microsoft.CodeDom.Providers.DotNetCompilerPlatform","user":{"login":"MaceWindu","id":1099238,"avatar_url":"https://avatars.githubusercontent.com/u/1099238?v=3","gravatar_id":"","url":"https://api.github.com/users/MaceWindu","html_url":"https://github.com/MaceWindu","followers_url":"https://api.github.com/users/MaceWindu/followers","following_url":"https://api.github.com/users/MaceWindu/following{/other_user}","gists_url":"https://api.github.com/users/MaceWindu/gists{/gist_id}","starred_url":"https://api.github.com/users/MaceWindu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MaceWindu/subscriptions","organizations_url":"https://api.github.com/users/MaceWindu/orgs","repos_url":"https://api.github.com/users/MaceWindu/repos","events_url":"https://api.github.com/users/MaceWindu/events{/privacy}","received_events_url":"https://api.github.com/users/MaceWindu/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dotnet/roslyn/labels/Area-Compilers","name":"Area-Compilers","color":"5319e7"},{"url":"https://api.github.com/repos/dotnet/roslyn/labels/Area-External","name":"Area-External","color":"5319e7"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2016-03-04T12:35:50Z","updated_at":"2016-03-05T15:15:30Z","closed_at":null,"body":"Not sure if this is proper place to report it, but I see some defects related to DotNetCompilerPlatform logged there.\r\n\r\n**Version Used**: \r\n1.0.20820.0 (1.0.1)\r\n\r\n**Expected Behavior**:\r\nPath to compiler executable could be configured.\r\n\r\n**Actual Behavior**:\r\nPath to compiler is hardcoded and the only way to use library is to put compiler on that way (ugly way to support Roslyn by ASP.NET) or change it using reflection (this is what I do right now).\r\nMost interesting is that both C# and VB code providers have constructors that accept path as one of  options parameter properties. But those constructors made internal and not used (except parameterless constructor and maybe tests).\r\n\r\nI've seen this one:\r\nhttps://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.BinFix/\r\nBut it just moves compiler files to hardcoded path... Not something I will be happy with."},"comment":{"url":"https://api.github.com/repos/dotnet/roslyn/issues/comments/192670523","html_url":"https://github.com/dotnet/roslyn/issues/9483#issuecomment-192670523","issue_url":"https://api.github.com/repos/dotnet/roslyn/issues/9483","id":192670523,"user":{"login":"MaceWindu","id":1099238,"avatar_url":"https://avatars.githubusercontent.com/u/1099238?v=3","gravatar_id":"","url":"https://api.github.com/users/MaceWindu","html_url":"https://github.com/MaceWindu","followers_url":"https://api.github.com/users/MaceWindu/followers","following_url":"https://api.github.com/users/MaceWindu/following{/other_user}","gists_url":"https://api.github.com/users/MaceWindu/gists{/gist_id}","starred_url":"https://api.github.com/users/MaceWindu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MaceWindu/subscriptions","organizations_url":"https://api.github.com/users/MaceWindu/orgs","repos_url":"https://api.github.com/users/MaceWindu/repos","events_url":"https://api.github.com/users/MaceWindu/events{/privacy}","received_events_url":"https://api.github.com/users/MaceWindu/received_events","type":"User","site_admin":false},"created_at":"2016-03-05T15:15:30Z","updated_at":"2016-03-05T15:15:30Z","body":"@shmao, your question made me think a lot :)\r\nWell, maybe it will not sound as a good reason, but using default hardcoded path is inconvinient for us. Right now I reset it to empty (current application folder) through reflection and to add compiler to new regular project or test project I just need to add compiler binaries as references.\r\nWith default path it will be more work, taking into accound that we:\r\n- use CodeDom as a backend for our higher-level code generation API. Our applications hosted as services, not as ASP.NET applications.\r\n- we don't use nuget and it means we need to manage references manually\r\n- bin (and obj) folders added to ignore list for our SCM\r\n\r\nWe would drop support CodeDom support happily taking into accont it wasn't changed for ages and really outdated, but unfortunatelly Roslyn is not production-ready for us yet."}}