MonoTouch: добавление ссылок на DLL в подпроекты

В некотором смысле я ищу здесь лучшую практику.

У меня есть общий проект, который используется многими моими приложениями. Этот проект имеет FlurryAnaylics и библиотеки ATMHud в качестве ссылок.

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

Итак, вопрос: нужно ли включать ссылки на библиотеки DLL в основной проект, который у меня есть в подпроектах все время?

1 ответ

Решение

По возможности я использую ссылки на файлы проекта (файлы csproj) поверх ссылок на сборки (.dll). Это делает многое проще, например:

  • навигация по коду (IDE);
  • автоматическая зависимость сборки (исходный код, который вы читаете, - это тот, который вы создаете, а не что-то потенциально несинхронизированное);
  • отладка на уровне исходного кода (даже если вы можете использовать ее без нее, вы точно синхронизированы);
  • (проще) переключаться между конфигурациями Debug|Release|...;
  • изменение определяет (или любой вариант уровня проекта);

Например

Solution1.sln

  • Project1a.csproj
  • MonoTouch.Dialog.csproj (ссылка на../Common/MonoTouch.Dialog.csproj)

Solution2.sln

  • Project2a.csproj
  • MonoTouch.Dialog.csproj (ссылка на../Common/MonoTouch.Dialog.csproj)

Common.sln

  • MonoTouch.Dialog.csproj

Большие решения могут немного пострадать от этого (повысить производительность, поиск по файлам...). Чем больше они получают, тем меньше вероятность, что каждый должен знать о каждой его части. Таким образом, прибыль уменьшается, а неудобства растут с каждым добавляемым проектом.

Например, я не хотел бы иметь ссылки на все сборки фреймворка внутри Mono (но лично я мог бы жить со всеми сборками SDK MonoTouch;-)

Примечание. Работа со ссылками на сборки не должна вызывать случайных ошибок при отладке на устройстве. Если вы можете создать такой тестовый пример, пожалуйста, заполните сообщение об ошибке:-)

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