{"action":"opened","issue":{"url":"https://api.github.com/repos/dotnet/roslyn/issues/762","labels_url":"https://api.github.com/repos/dotnet/roslyn/issues/762/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/roslyn/issues/762/comments","events_url":"https://api.github.com/repos/dotnet/roslyn/issues/762/events","html_url":"https://github.com/dotnet/roslyn/issues/762","id":58433393,"number":762,"title":"When loading an MSBuildSolution, building project references should be error tolerant","user":{"login":"KirillOsenkov","id":679326,"avatar_url":"https://avatars.githubusercontent.com/u/679326?v=3","gravatar_id":"","url":"https://api.github.com/users/KirillOsenkov","html_url":"https://github.com/KirillOsenkov","followers_url":"https://api.github.com/users/KirillOsenkov/followers","following_url":"https://api.github.com/users/KirillOsenkov/following{/other_user}","gists_url":"https://api.github.com/users/KirillOsenkov/gists{/gist_id}","starred_url":"https://api.github.com/users/KirillOsenkov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KirillOsenkov/subscriptions","organizations_url":"https://api.github.com/users/KirillOsenkov/orgs","repos_url":"https://api.github.com/users/KirillOsenkov/repos","events_url":"https://api.github.com/users/KirillOsenkov/events{/privacy}","received_events_url":"https://api.github.com/users/KirillOsenkov/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-02-21T01:33:02Z","updated_at":"2015-02-21T01:33:02Z","closed_at":null,"body":"There is a place where the workspace tries to figure out a project reference to a project type it doesn't have a loader for, by having MSBuild load the project file so we can discover its output path, so we can make a metadata reference if the file is there.\r\n \r\nThat's two different kinds of loading. The MSBuild API can load any kind of project file, because they are all MSBuild project files regardless of language.  The workspace can only successfully load project files associated with languages it knows, but via MSBuild loading it can sometimes turn project to project references into metadata references. This code is in there precisely for the case of having mixed solutions with C++ projects in them.\r\n\r\nI'd argue that the loading of a referenced project for the purpose of determining the OutputPath should be resilient to failure and not cause failing of the entire MSBuildWorkspace just because we weren't able to build a referenced C++ project.\r\n\r\nRight now when we load a solution with a C++ project and a C# project that references it, if the C++ project fails to build (e.g. missing include target file), the entire load process will fail.\r\n\r\nInstead, we should issue a warning and proceed loading the C# project as if the reference wasn't there, or maybe hang diagnostics off of it."}}