Visual Studio 2008 Создание ненужного проекта - PullRequest
29 голосов
/ 20 февраля 2009

У меня есть проект на C #, который включает в себя один exe и 11 библиотечных файлов. Exe ссылается на все библиотеки, а lib1 может ссылаться на lib2, lib3, lib4 и т. Д.

Если я внесу изменение в класс в lib1 и построю решение, я предположил, что нужно будет изменить только lib1 и exe. Однако все dll и exe создаются, если я хочу запустить решение.

Есть ли способ остановить построение зависимостей, если они не были изменены?

Ответы [ 13 ]

0 голосов
/ 28 июля 2009

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

Щелкните правой кнопкой мыши на sln, выберите диспетчер конфигурации и снимите флажки. Не идеально, но работает, когда Visual Studio не работает.

0 голосов
/ 20 февраля 2009

Да, исключить неизменяемые биты из решения. Я говорю это с оговоркой, поскольку вы можете скомпилировать таким образом, чтобы изменение номера сборки для измененной библиотеки могло привести к поломке не построенных частей. Это не должно иметь место, если вы не нарушаете интерфейс, но это довольно часто, потому что большинство разработчиков не понимают интерфейс в мире .NET. Это происходит из-за того, что не нужно писать IDL. : -)

Что касается X-проектов в решении, НЕТ, вы не можете остановить их построение, так как система видит, что зависимость изменилась.

Кстати, вы должны посмотреть на свой проект и выяснить, почему ваш проект пользовательского интерфейса (предположим, что это пользовательский интерфейс) ссылается на ту же библиотеку, что и все остальное. Хорошая модель зависимостей покажет класс (ы), которые должны быть разбиты на объекты данных или доменные объекты (я сделал предположение, что общая зависимость, конечно, представляет собой некоторый объект данных или объект домена, но это довольно часто ). Если общая зависимость не является объектом домена / данных, то в большинстве случаев я бы переосмыслил свою архитектуру. В общем случае вы должны иметь возможность создавать путь от пользовательского интерфейса к данным без общих зависимостей, кроме объектов, не связанных с поведением.

0 голосов
/ 20 февраля 2009

Я не думаю, что вы можете сделать это из коробки в VS. Вам нужна эта надстройка http://workspacewhiz.com/

Это не бесплатно, но вы можете оценить это, прежде чем купить.

...