{"action":"opened","issue":{"url":"https://api.github.com/repos/dotnet/sdk/issues/373","repository_url":"https://api.github.com/repos/dotnet/sdk","labels_url":"https://api.github.com/repos/dotnet/sdk/issues/373/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/sdk/issues/373/comments","events_url":"https://api.github.com/repos/dotnet/sdk/issues/373/events","html_url":"https://github.com/dotnet/sdk/issues/373","id":188389653,"number":373,"title":"Extension point for languages","user":{"login":"piotrpMSFT","id":2379589,"avatar_url":"https://avatars.githubusercontent.com/u/2379589?v=3","gravatar_id":"","url":"https://api.github.com/users/piotrpMSFT","html_url":"https://github.com/piotrpMSFT","followers_url":"https://api.github.com/users/piotrpMSFT/followers","following_url":"https://api.github.com/users/piotrpMSFT/following{/other_user}","gists_url":"https://api.github.com/users/piotrpMSFT/gists{/gist_id}","starred_url":"https://api.github.com/users/piotrpMSFT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piotrpMSFT/subscriptions","organizations_url":"https://api.github.com/users/piotrpMSFT/orgs","repos_url":"https://api.github.com/users/piotrpMSFT/repos","events_url":"https://api.github.com/users/piotrpMSFT/events{/privacy}","received_events_url":"https://api.github.com/users/piotrpMSFT/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-11-10T00:36:58Z","updated_at":"2016-11-10T00:36:58Z","closed_at":null,"body":"To have an awesome language agnostic experience it's nice if the sdk (like previous `preview2`) has a clean extension point to add additional languages\r\n\r\nAtm works ( ref f# [examples](https://github.com/dotnet/netcorecli-fsc/tree/master/examples/preview3) and [tests suite](https://github.com/dotnet/netcorecli-fsc/tree/master/test-msbuild) ), but can be improved a bit\r\n\r\nAn example the [fsharp with preview3](https://github.com/dotnet/netcorecli-fsc/blob/99e22f5413fa0dc7ea16bf92a35fb0048fa99207/examples/preview3/console/ExampleConsoleApp.fsproj#L26-L28)\r\n\r\nSo:\r\n\r\n1. Add a `PackageReference`  to a lang sdk package who contains msbuild target files (example [FSharp.NET.Sdk](https://github.com/dotnet/netcorecli-fsc/tree/master/src/FSharp.NET.Sdk) ) who are auto imported\r\n     - The targets file contains a:\r\n          - `CoreCompile` task => ok, thats usually invoke the compiler to compile\r\n          - `CreateManifestResourceNames` task => why?\r\n2. Import at the end `$(MSBuildToolsPath)\\Microsoft.Common.targets` (instead of `Microsoft.CSharp.targets`)\r\n\r\nThat's ok and works, but with some issues:\r\n\r\n- I cannot directly include `Microsoft.Common.targets` inside my target files, because at the first `dotnet restore` doesnt exists, so restore doesnt work (`Common` imports nuget restore target somewhere).\r\n- I think is important to be able to import `Microsoft.Common.targets` inside custom language targets, for example to be able to replicate the .net framework build script (so wildcard include before and after `.Common` import). If i put `.Common` inside the target file is an authoring error because is included two times (on `dotnet restore` is ok, but after that is included two times)\r\n- I can specify to import the target inside nugetpackage at the end of project file, but is annoying atm because i need to do that starting from $NugetPackageCacheRoot directory, so that's going to include version of package. Also doesnt work at first `dotnet restore`, because doesnt exists yet, so i need to conditionally include `Common` anyway\r\n\r\nBest experience from project:\r\n\r\n- Just include a `PackageReference` with custom targets like `CoreCompile` (compiler can be a dotnet sdk tool :love:)\r\n- No need to include `Microsoft.Common.targets` target at the end, maybe another target who will invoke the auto-imported lang target.\r\n\r\n@nguerrera you have some ideas about how to do the extensibility changes?\r\n\r\n/cc @piotrpMSFT @livarcocc @blackdwarf \r\n/cc @cartermp @KevinRansom @cloudRoutine for F#\r\n\r\n\r\nMoved from https://github.com/dotnet/cli/issues/4669 on behalf of @enricosada"}}
{"actor":{"display_login":"piotrpMSFT"}}