{"action":"created","issue":{"url":"https://api.github.com/repos/xamarin/xamarin-android/issues/1387","repository_url":"https://api.github.com/repos/xamarin/xamarin-android","labels_url":"https://api.github.com/repos/xamarin/xamarin-android/issues/1387/labels{/name}","comments_url":"https://api.github.com/repos/xamarin/xamarin-android/issues/1387/comments","events_url":"https://api.github.com/repos/xamarin/xamarin-android/issues/1387/events","html_url":"https://github.com/xamarin/xamarin-android/pull/1387","id":303711389,"number":1387,"title":"[create-vsix] Don't package xabuild.exe symlinks","user":{"login":"jonpryor","id":155958,"avatar_url":"https://avatars3.githubusercontent.com/u/155958?v=4","gravatar_id":"","url":"https://api.github.com/users/jonpryor","html_url":"https://github.com/jonpryor","followers_url":"https://api.github.com/users/jonpryor/followers","following_url":"https://api.github.com/users/jonpryor/following{/other_user}","gists_url":"https://api.github.com/users/jonpryor/gists{/gist_id}","starred_url":"https://api.github.com/users/jonpryor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonpryor/subscriptions","organizations_url":"https://api.github.com/users/jonpryor/orgs","repos_url":"https://api.github.com/users/jonpryor/repos","events_url":"https://api.github.com/users/jonpryor/events{/privacy}","received_events_url":"https://api.github.com/users/jonpryor/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-03-09T03:24:54Z","updated_at":"2018-03-09T15:59:17Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/xamarin/xamarin-android/pulls/1387","html_url":"https://github.com/xamarin/xamarin-android/pull/1387","diff_url":"https://github.com/xamarin/xamarin-android/pull/1387.diff","patch_url":"https://github.com/xamarin/xamarin-android/pull/1387.patch"},"body":"`xabuild.exe` execution involves the creation of symbolic links within\r\n`bin/$(Configuration)/lib/xamarin.android/xbuild-frameworks`, pointing\r\ninto the `.NETFramework` and `.NETPortable` directories.\r\n\r\n`build-tools/create-vsix` doesn't know anything about these symbolic\r\nlinks, and *follows* them.\r\n\r\nThe result is that *if* you build with `xabuild.exe` then create a\r\n`.vsix`, the resulting file will contain lots of \"garbage\":\r\n\r\n\t$ make prepare all all-tests MSBUILD=msbuild\r\n\t# `make all-tests` executes `xabuild.exe`\r\n\t$ make create-vsix CONFIGURATIONS=Debug\r\n\t$ unzip -l Xamarin.Android.Sdk-OSS*.vsix\r\n\t...\r\n\t      135  03-08-2018 21:40   $ReferenceAssemblies/Microsoft/Framework/.NETFramework/v2.0/RedistList/FrameworkList.xml\r\n\t...\r\n\t    22640  03-08-2018 21:40   $ReferenceAssemblies/Microsoft/Framework/.NETPortable/v4.0/Microsoft.CSharp.dll\r\n\t...\r\n\r\nAll told, an extra *1041* files are included in the `.vsix` because of\r\nthe `.NETFramework` and `.NETPortable` symbolic links.\r\n\r\nFix this by introducing \"communication\" between `xabuild.exe` and\r\n`create-vsix.targets`:\r\n\r\n 1. When `xabuild.exe` creates a symbolic link, add the name of the\r\n    symbolic link into\r\n    `bin/$(Configuration)/lib/xamarin.android/xbuild-frameworks/.__sys_links.txt`.\r\n\r\n 2. Update the `AddContent` target within `create-vsix.targets` to\r\n    read the contents of `.__sys_links.txt`, and exclude each\r\n    directory found within it.\r\n\r\nThis prevents the `.NETFramework` and `.NETPortable` symlinks from\r\nbeing followed by the `.vsix` creator, allowing the `.vsix` contents\r\nto be at least marginally saner."},"comment":{"url":"https://api.github.com/repos/xamarin/xamarin-android/issues/comments/371854390","html_url":"https://github.com/xamarin/xamarin-android/pull/1387#issuecomment-371854390","issue_url":"https://api.github.com/repos/xamarin/xamarin-android/issues/1387","id":371854390,"user":{"login":"jonathanpeppers","id":840039,"avatar_url":"https://avatars0.githubusercontent.com/u/840039?v=4","gravatar_id":"","url":"https://api.github.com/users/jonathanpeppers","html_url":"https://github.com/jonathanpeppers","followers_url":"https://api.github.com/users/jonathanpeppers/followers","following_url":"https://api.github.com/users/jonathanpeppers/following{/other_user}","gists_url":"https://api.github.com/users/jonathanpeppers/gists{/gist_id}","starred_url":"https://api.github.com/users/jonathanpeppers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonathanpeppers/subscriptions","organizations_url":"https://api.github.com/users/jonathanpeppers/orgs","repos_url":"https://api.github.com/users/jonathanpeppers/repos","events_url":"https://api.github.com/users/jonathanpeppers/events{/privacy}","received_events_url":"https://api.github.com/users/jonathanpeppers/received_events","type":"User","site_admin":false},"created_at":"2018-03-09T15:59:17Z","updated_at":"2018-03-09T15:59:17Z","author_association":"CONTRIBUTOR","body":"Hmm, does the [msbuild pr builder](https://jenkins.mono-project.com/job/xamarin-android-msbuild-pr-builder/2195/) not have the Azure artifacts?\r\n\r\nI don't think the xbuild one will show the same issue that this PR fixes."}}
{"actor":{"display_login":"jonathanpeppers"}}