Библиотеки классов для проектов MonoTouch, «не собранные с использованием активной конфигурации», как исправить? - PullRequest
7 голосов
/ 16 февраля 2012

Я пытаюсь создать набор библиотек классов для совместного использования кода между приложениями, которые мы собираемся создать.

Однако я не могу правильно создавать проекты и не вижу, чтоЯ делаю неправильно.

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

  1. В свежем экземпляре MonoDevelop, Я иду в File-> New Solution
  2. Я выбираю шаблон проекта библиотеки MonoTouch и присваиваю ему подходящее имя
  3. Затем я добавляю новый проект приложения в решение (для моделирования с использованиембиблиотека в приложении), типа «iPhone Single View Application»
  4. Я делаю проект приложения стартовым проектом
  5. Я добавляю ссылку на проект библиотеки в проект приложения
  6. Затем я создаю

Это работает, и если я выберу пункт меню Run-> Debug, я вижу, как приложение открывается в симуляторе.

Давайте предположим, что я хочупроверить это на айфонеодин сейчас, поэтому я захожу в выпадающий список на панели инструментов, выбираю цель сборки «Debug | iPhone», и сразу же проект библиотеки классов становится серым:

(не встроено в активной конфигурации)

Если щелкнуть правой кнопкой мыши решение, проверить сопоставления конфигурации, при выборе чего-либо, связанного с симулятором или iPhone, библиотека классов полностью исчезает из вида и не может быть выбрана для сборки.

В выпадающем списке цели сборки также есть 6 пунктов: Отладка, Выпуск, Отладка / выпуск для iPhone и Отладка / выпуск для симулятора.Очевидно, только Debug и Release, которые не предназначены для iPhone или симулятора, заканчивают сборкой библиотеки классов.

Что я здесь не так делаю?

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

1 Ответ

2 голосов
/ 21 сентября 2012

Интересно, что этого не произойдет, если вы добавите проект Lib после проекта App.

Я создал проект Lib, как вы описали, затем добавил приложение iPhone для Single-View, затем добавил еще один Lib (Lib2). Затем я сравнил текст в .sln и обнаружил, что в Lib отсутствуют следующие строки (по сравнению с Lib2):

{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Debug|iPhone.Build.0 = Debug|Any CPU
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU

{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Release|iPhone.ActiveCfg = Release|Any CPU
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Release|iPhone.Build.0 = Release|Any CPU
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU

Используйте свой собственный GUID вместо моего. GUID будет в верхней части файла. Например, мой выглядит (прокрутите до конца):

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lib", "Lib.csproj", "{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}"

Затем я снова открыл решение, и Lib теперь доступен в конфигурациях Debug|iPhone и Debug|iPhoneSimulator.


В качестве примечания, хотя Lib не будет встраивать Debug|iPhone или Debug|iPhoneSimulator, двоичный файл из Debug был совместим. Я мог бы просто создать и запустить приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...