{"action":"created","issue":{"url":"https://api.github.com/repos/Microsoft/msbuild/issues/2222","repository_url":"https://api.github.com/repos/Microsoft/msbuild","labels_url":"https://api.github.com/repos/Microsoft/msbuild/issues/2222/labels{/name}","comments_url":"https://api.github.com/repos/Microsoft/msbuild/issues/2222/comments","events_url":"https://api.github.com/repos/Microsoft/msbuild/issues/2222/events","html_url":"https://github.com/Microsoft/msbuild/pull/2222","id":236239960,"number":2222,"title":"Return of RAR metadata caching","user":{"login":"rainersigwald","id":3347530,"avatar_url":"https://avatars2.githubusercontent.com/u/3347530?v=3","gravatar_id":"","url":"https://api.github.com/users/rainersigwald","html_url":"https://github.com/rainersigwald","followers_url":"https://api.github.com/users/rainersigwald/followers","following_url":"https://api.github.com/users/rainersigwald/following{/other_user}","gists_url":"https://api.github.com/users/rainersigwald/gists{/gist_id}","starred_url":"https://api.github.com/users/rainersigwald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rainersigwald/subscriptions","organizations_url":"https://api.github.com/users/rainersigwald/orgs","repos_url":"https://api.github.com/users/rainersigwald/repos","events_url":"https://api.github.com/users/rainersigwald/events{/privacy}","received_events_url":"https://api.github.com/users/rainersigwald/received_events","type":"User","site_admin":false},"labels":[{"id":201571835,"url":"https://api.github.com/repos/Microsoft/msbuild/labels/cla-already-signed","name":"cla-already-signed","color":"009800","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/Microsoft/msbuild/milestones/15","html_url":"https://github.com/Microsoft/msbuild/milestone/15","labels_url":"https://api.github.com/repos/Microsoft/msbuild/milestones/15/labels","id":2360021,"number":15,"title":"MSBuild 15.3","description":"Aligns to SDK / CLI \"2.0\"","creator":{"login":"AndyGerlicher","id":9847849,"avatar_url":"https://avatars0.githubusercontent.com/u/9847849?v=3","gravatar_id":"","url":"https://api.github.com/users/AndyGerlicher","html_url":"https://github.com/AndyGerlicher","followers_url":"https://api.github.com/users/AndyGerlicher/followers","following_url":"https://api.github.com/users/AndyGerlicher/following{/other_user}","gists_url":"https://api.github.com/users/AndyGerlicher/gists{/gist_id}","starred_url":"https://api.github.com/users/AndyGerlicher/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndyGerlicher/subscriptions","organizations_url":"https://api.github.com/users/AndyGerlicher/orgs","repos_url":"https://api.github.com/users/AndyGerlicher/repos","events_url":"https://api.github.com/users/AndyGerlicher/events{/privacy}","received_events_url":"https://api.github.com/users/AndyGerlicher/received_events","type":"User","site_admin":false},"open_issues":21,"closed_issues":53,"state":"open","created_at":"2017-03-02T23:36:11Z","updated_at":"2017-06-15T16:03:15Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2017-06-15T16:03:15Z","updated_at":"2017-06-15T17:53:37Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/Microsoft/msbuild/pulls/2222","html_url":"https://github.com/Microsoft/msbuild/pull/2222","diff_url":"https://github.com/Microsoft/msbuild/pull/2222.diff","patch_url":"https://github.com/Microsoft/msbuild/pull/2222.patch"},"body":"My previous attempt at this in #2192 had a bad side effect: it kept handles within `AssemblyInformation` objects live in the cache past the point of RAR returning, because nothing disposed them. They should have been cleaned up eventually, if finalizers ran after GC, but that wasn't sufficient to keep an internal test that did a rebuild in VS working--it failed copying from obj to bin because a the file in bin was held in use.\r\n\r\nThis is a cleaner approach: wrap the extraction process as it was done before, and cache an object consisting only of the results.\r\n\r\nThat \"object consisting only of the results\" seems like it should just be `AssemblyInformation` instead of a new type. I introduced the new type to minimize churn and maximize understandability of this change in the short term.\r\n\r\nRelates to #2015."},"comment":{"url":"https://api.github.com/repos/Microsoft/msbuild/issues/comments/308819417","html_url":"https://github.com/Microsoft/msbuild/pull/2222#issuecomment-308819417","issue_url":"https://api.github.com/repos/Microsoft/msbuild/issues/2222","id":308819417,"user":{"login":"cdmihai","id":2255729,"avatar_url":"https://avatars3.githubusercontent.com/u/2255729?v=3","gravatar_id":"","url":"https://api.github.com/users/cdmihai","html_url":"https://github.com/cdmihai","followers_url":"https://api.github.com/users/cdmihai/followers","following_url":"https://api.github.com/users/cdmihai/following{/other_user}","gists_url":"https://api.github.com/users/cdmihai/gists{/gist_id}","starred_url":"https://api.github.com/users/cdmihai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cdmihai/subscriptions","organizations_url":"https://api.github.com/users/cdmihai/orgs","repos_url":"https://api.github.com/users/cdmihai/repos","events_url":"https://api.github.com/users/cdmihai/events{/privacy}","received_events_url":"https://api.github.com/users/cdmihai/received_events","type":"User","site_admin":false},"created_at":"2017-06-15T17:53:37Z","updated_at":"2017-06-15T17:53:37Z","body":">         internal static FrameworkName GetTargetFrameworkAttribute(string path)\r\n\r\nShouldn't GetTargetFrameworkAttribute get cached as well?\r\n\r\n---\r\nRefers to: src/Tasks/AssemblyDependency/AssemblyInformation.cs:222 in d541b3f. [](commit_id = d541b3fde95571060de73d4ef91576029c729490, deletion_comment = False)"}}
{"actor":{"display_login":"cdmihai"}}