Как построить проект C # без проверки зависимостей? - PullRequest
8 голосов
/ 28 августа 2010

дано решение где:

  • Проект P1 имеет ссылку на P2
  • P2 имеет ссылку на P3
  • P3 имеет ссылку на P4

Когда вы вызываете msbuild следующим образом:

msbuild.exe /v:m "c:\mysolution\p1\p1.csproj"

msbuild проверяет все зависимости проекта, если необходимо, строит зависимости. Типичный вывод:

Microsoft (R) Build Engine Version 4.0.30319.1
[Microsoft .NET Framework, Version 4.0.30319.1]
Copyright (C) Microsoft Corporation 2007. All rights reserved.

  P4 -> c:\mysolution\P4\bin\Debug\P4.dll
  p3 -> c:\mysolution\p3\bin\Debug\p3.dll
  p2 -> c:\mysolution\p2\bin\Debug\p2.dll
  p1 -> c:\mysolution\p1\bin\Debug\p1.dll

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

Есть ли способ построить только проект p1.csproj без проверки зависимостей? Решение может быть с msbuild или с чем-то еще.

Ответы [ 5 ]

4 голосов
/ 24 августа 2012

вы можете передать /p:BuildProjectReferences=false в msbuild, который пропустит ссылку на сборку проекта .. но у этого есть одно ограничение: если конфигурация вашего решения и конфигурации проекта, на которую ссылаются, не совпадают, msbuild не сможет разрешить целевой выходной файл указанного проекта ...

Вот бесплатный пакет расширений vs, вы можете скачать и попробовать http://visualstudiogallery.msdn.microsoft.com/98de4058-8dc7-435b-9e01-c0f71dace808

vs пакет: Sharp Build Utility

Я автор этого расширения, яимеют те же требования в текущей работе, наслаждайтесь этим инструментом ...

по сути, это расширение может обрабатывать описанный выше случай, который создаст теневую копию вашего файла проекта сборки, изменит всю ссылку на проект на ссылку файла dll,и запустите msbuild с файлом теневого проекта.

2 голосов
/ 28 августа 2010

Какова цель (почему вас это волнует)?

Вы можете использовать ссылки на сборки, а не ссылки на проекты (но остерегайтесь отладки v различий пути выпуска).

1 голос
/ 28 августа 2010

Возможно, вы могли бы использовать Configuration Manager в Visual Studio и снять флажки со всех проектов, кроме того, который вы хотите построить.

0 голосов
/ 28 августа 2010

Вам следует проверить продукт под названием OpenMake. Мой ведущий инженер по сборке говорит мне, что они много сделали с проверкой зависимостей и распараллеливанием сборки.

OpenMake

0 голосов
/ 28 августа 2010

Ознакомьтесь с рекомендациями Microsoft по структурированию решений и проектов:

Шаблоны и практики Microsoft: структурирование решений и проектов

На данный момент у вас есть одиночное решение . Это идеальный случай, который следует использовать при любой возможности. Однако одно решение может оказаться непрактичным для очень больших решений, подобных вашему.

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

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