Visual Studio 2010: Як забезпечити порядок побудови проектів у рішенні?


76

У мене не було проблем з цим у Visual Studio 2008, але, схоже, у VS 2010 виникла проблема, і я впевнений, що це, мабуть, я.

У мене є рішення з проектом веб-сайту ASP.NET та кількома проектами C # (BLL, DAL, тести в NUnit). Я налаштував процес побудови тестового проекту для автоматичного запуску NUnit для запуску тестів. Я хотів би переконатись, що проекти BLL та DAL будуються перед тестовим проектом, щоб тести працювали за останньою скомпільованою версією (так, я знаю, що міг би зробити це все в одному проекті, але я вирішив не робити - будь ласка, терпіть зі мною :))

Отже, я встановив залежності тестового проекту, включаючи проекти BLL, DAL та веб-додатки, а порядок складання показує BLL, DAL, веб-додаток, а потім тести. Однак я помітив, що BLL насправді не будується, коли я будую проект тесту.

Будь-яка ідея, що це може бути, або будь-який варіант, якого я можу втратити, щоб змусити інші проекти будувати, коли я будую проект тесту?

Заздалегідь дякуємо за будь-яку допомогу!


Перевірте це посилання: msdn.microsoft.com/en-us/library/5tdasz7h.aspx
Оскар К'єллін

1
Якщо конфігурація рішення, яку ви створюєте, перевірена для вашого проекту BLL?
Нік Кравер

Відповіді:


127

Нік Кравер згадував перевірку диспетчера конфігурацій, щоб переконатися, що проект вибраний для побудови для даної конфігурації.

Однак, щоб встановити порядок складання для кількох проектів у рішенні, клацніть правою кнопкою миші рішення та оберіть "Порядок побудови проекту ..." у контекстному меню.


4
Я спробував це, але не бачу, як вплинути на порядок. У примітці сказано "Використовуйте вкладку" Залежності ", щоб змінити порядок побудови", але на іншій вкладці є лише прапорці.
AlignedDev

19
Ви робите проект, який ви хочете побудувати спочатку, залежністю того, який ви хочете побудувати останнім.
Bluebaron

Потім перевірте іншу вкладку, щоб переконатися, що все у вас вийшло.
Bluebaron

Прапорець "побудувати" для мене був правильним. Я відповів і прийняв відповідь, але потім її видалили, я думаю, завдяки мені сказав "дякую". Тому я позначу цю відповідь як правильну.
SeanKilleen

1
Дивіться цю відповідь на скріншоти всього цього.
Євген Сергєєв

21

Я трохи викладу свій коментар тут для тих, хто має подібну проблему.

Відкрийте диспетчер конфігурацій, клацнувши правою кнопкою миші на рішенні та вибравши Configuration Manager , а потім переконайтеся, що збірка перевірена для відповідного проекту (для вашої поточної конфігурації) у правому стовпці тут:

Менеджер конфігурацій


17

Можливо, замість того, щоб встановлювати замовлення вручну, ви могли б використовувати проектні залежності, що дозволяє непрямо вказувати порядок побудови.

  1. У Провіднику рішень виберіть проект.
  2. У меню Проект виберіть Залежності проекту. Відкриється діалогове вікно Залежності проекту. Параметр "Залежності проекту" доступний лише у рішеннях, що містять більше одного проекту.
  3. На вкладці Залежності виберіть проект зі спадного меню Проект.
  4. У полі Залежно від встановіть прапорець для будь-якого іншого проекту, який повинен бути побудований перед цим проектом.

0

Щоб виправити проблему, яка сталася у моєму VS2012, я зробив наступне:

Клацніть правою кнопкою миші Властивості проекту -> Загальні властивості -> Фреймворк та посилання

Тепер ви знайдете, що деякі проекти, показані на вкладці "Залежність", відсутні у списку "Список літератури".

Натисніть "Додати нове посилання", щоб додати відсутні проекти.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.