Установить действие по умолчанию для файлов изображений или файлов в целом

Я использую Xamarin Studio. Можно ли установить действие по умолчанию для пользовательских файлов или файлов изображений?

Я разрабатываю приложение, которое использует много изображений PNG. BundleResource устанавливается по умолчанию для каждого изображения, которое я импортирую в проект. Я заметил, что использование моей памяти уменьшается примерно на ~25 МБ (с 220 до 193 МБ), когда я строю свои изображения с использованием контента, а не BundleResource по умолчанию.

"MonoDevelop должен автоматически выбирать действие сборки BundleResource, но вы можете проверить или установить его вручную, используя свойства каждого файла".

- http://docs.xamarin.com/guides/ios/platform_features/monodevelop_features

2 ответа

Решение

Похоже, что действие по умолчанию может быть установлено. Однако при добавлении файлов в проект диалоговое окно "Добавить файлы" предоставляет возможность переопределить действие сборки, которое файлы будут импортированы для использования.

Таким образом, вы можете выбрать кучу изображений PNG и импортировать их с контентом с самого начала.

http://mjhutchinson.com/journal/2011/03/monodevelop_tips_build_actions

Я бы рекомендовал не использовать Content строить действие. BundleResource Действие build было добавлено позже и стало более мощным, однако единственное отличие между ними заключается в сопоставлении местоположения файла в вашем проекте с местоположением файла в комплекте приложений. Content действие build было сохранено только для обратной совместимости.

Если вы видите другое использование памяти, должна быть какая-то другая причина для этого. Вы пытались сравнить две версии вашего пакета приложений?

Файлы содержимого копируются в комплект приложения с относительным путем, соответствующим их пути в вашем проекте. Файлы BundleResource обрабатываются одинаково, за исключением того, что если они находятся в каталоге ресурсов проекта, этот префикс удаляется. Идея состоит в том, что вы можете копировать вещи в корень пакета приложений, как того требуют API-интерфейсы Apple, не загромождая корень вашего проекта.

Так, например, с BundleResource сборка действий, файл Resources\Foo\Bar.png в вашем проекте будет скопирован в Foo\Bar.png в комплекте приложений. Тогда как с Content создать действие, которое будет скопировано в Resources\Foo\Bar.png (хотя вам не разрешено иметь каталог под названием "Ресурсы" внутри вашего приложения, так как это зарезервированное имя Apple, поэтому вы получите ошибку).

BundleResource также поддерживает IPhoneResourcePrefix Свойство проекта вы можете установить только путем ручного редактирования файла csproj, который позволит вам определить больше каталогов, которые будут обрабатываться таким образом, например, вы можете иметь каталог Images. Это дает вам больше контроля над организацией ваших ресурсов. Вы также можете использовать LogicalName метаданные элемента по любому BundleResource пункт, чтобы полностью переопределить его относительное местоположение пакета.

Другие вопросы по тегам