2012-03-01 4 views
1

В какой-то мере я ищу лучшую практику.MonoTouch: добавление ссылок на DLL в подпроекты

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

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

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

+1

Когда вы говорите, что это терпит неудачу, точно, как это происходит? Можете ли вы объяснить немного больше? –

+0

Приложение запускается на устройстве в отладке, затем взрывается. Консоль просто сбрасывает уведомление о сбое, без отладочной информации. –

ответ

1

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

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

E.g.

Solution1.sln

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

Solution2.sln

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

Common.sln

  • MonoTouch.Dialog.csproj

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

E.g.Я не хотел бы иметь ссылки на каждый каркасных узлов внутри Mono (но лично я мог бы жить со всеми SDK ассамблей MonoTouch ;-)

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

+0

Я не уверен, что это ошибка, но когда я не включаю ATMHud.dll и FlurryAnalytics.dll в основной проект, он не работает. Добавление ссылок на них (у меня нет источника) заставляет проблему уйти. –

+0

Как вы добавляете ссылки на подпроекты в MonoDevelop? В VisualStudio «открытое решение» и установите флажок «добавить к текущему решению» на открытой панели. Я не вижу, как это сделать в MonoDevelop. –

Смежные вопросы