2017-02-10 4 views
0

В библиотеке привязки Xamarin.iOS для родной библиотеки Objective-C мы начали видеть огромную дисперсию в размере вывода библиотеки DLL библиотеки привязки за последние несколько недель. Никаких идей, которые могли бы вызвать это.Понимание огромной дисперсии в библиотеке связывания библиотеки Xamarin iOS

Наша библиотека связывания published to MyGet (NuGet) и пакеты варьируются от 7MBytes (хорошо!) До 200MBytes (плохо!) За небольшую разницу в коде !!

enter image description here

Установки для Xamarin.iOS Binding библиотеки довольно прямо вперед. Мы компилируем в режиме Release с флагом AnyCPU.

enter image description here

Сам каркас размером является довольно постоянной 15MBytes, но на обследовании рамка (который проверяется на SVN Repo) имеет .svn папки, которая составляет 61 мегабайт.

enter image description here enter image description here

Так что я задаюсь себе ... Есть ли способ сказать Xamarin игнорировать .svn папку при создании связывания библиотек?

Или, если мы используем лучший менеджер пакетов, чем репо SVN для нашей скомпилированной структуры? : D

+1

Я не думаю, что это сценарий, в котором вы должны сказать Xamarin игнорировать папку. Если что-нибудь, это то, что вы должны решить с помощью настраиваемого сценария сборки. Некоторые мысли могут заключаться в том, чтобы взять существующий проект SVN и скопировать во временный проект без папки '.svn', чтобы создать привязку. К сожалению, я не использовал SVN некоторое время, так что трудно сказать. Другая мысль заключалась бы в том, чтобы посмотреть, что входит в ваш '.csproj', чтобы увидеть, добавляется ли он там (что я сомневаюсь). –

+1

Наконец, вы бы посмотрели фактические задачи сборки, чтобы посмотреть, что происходит. Https: //github.com/xamarin/xamarin-macios/blob/e3166fbb15bd4561cea0abdc7fa6ad02b1e027e6/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.ObjCBinding .CSharp.targets –

+0

Хорошая идея. Я вроде резиновая утка выяснила, что папка .svn добавила размер при написании вопроса. Тогда это просто упражнение для чтения, чтобы исключить папку. Это не включено через Xamarin csproj, я проверил. Он просто подбирает всю папку ... –

ответ

0

Я решил эту проблему, но я не уверен, как это сделать.

Я считаю, что огромная дисперсия была вызвана включением папки .svn в нашу папку .framework, которую Xamarin мог включить в скомпилированную библиотеку Binding.

После удаления этой папки .svn, размер библиотеки не получал меньше ...

После потери несколько комков волос я вновь установленных Xamarin Studio, на сервере Mac OSX, в том числе полностью cleaning all Xamarin folders as per this article.

Затем, после перестройки, размер библиотеки связывания сокращается до более респектабельных 7 Мбайт.