MonoTouch: добавление ссылок на DLL в подпроекты - PullRequest
1 голос
/ 02 марта 2012

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

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

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

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

1 Ответ

1 голос
/ 02 марта 2012

По возможности я использую ссылки на файлы проекта (файлы 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; -)

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

...