Как запретить сборке проекта msbuild, если зависимость изменилась - PullRequest
0 голосов
/ 20 июля 2011

У меня есть 2 проекта в 2 отдельных решениях

Один ссылается на другой по ссылке на DLL.

Пример: MyProjectA ссылается на MyprojectB с помощью DLL

В ProjectB я добавляюнерелевантная строка кода для файла класса (то есть строка abc = "abc";) Я перестраиваю ProjectB, ProjectB.dll помещается в каталог где-то, на который ProjectA ссылается

Я не делаю никаких изменений в ProjectA и пытаюсь«Построить» проект А, он собирает и обновляет DLL.Я не хочу, чтобы это произошло.Если я снова запускаю сборку на projectA, сборка пропускается, так как никаких изменений не было сделано.

Изменения в зависимости, которые напрямую не влияют на вызовы из Проекта А, НЕ должны влиять на тот факт, что msbuild фактически строит ProjectA.Это вызывает проблемы с нашим версионированием / подписанием, и мы должны снова предоставить клиентам ВСЕ файлы.

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

Ответы [ 2 ]

1 голос
/ 20 июля 2011

Вы должны реорганизовать проект B в 2 библиотеки классов (DLL). Одна DLL (proj-B-core.dll), содержащая то, от чего на самом деле зависит Project A, и вторая DLL (prod-B-misc.dll), содержащая то, что не заботит Project A. Измените Project A на ссылку proj-B-core.dll, и вы получите желаемое поведение.

Лучший, / JHD

0 голосов
/ 23 июля 2011

Я не уверен, что это проблема с msbuild.Я бы посоветовал изучить ваш подход к управлению версиями, но без дополнительной информации я не могу прокомментировать.Одна вещь, которая может помочь в этом конкретном случае, это использовать перенаправление политики .Это должно предотвратить перераспределение всего приложения, когда изменилась только 1 ссылка на сборку.Вы можете просто распространить новую сборку и файл политики.

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