Visual Studio продолжает строить все
У меня большой файл.sln со многими проектами.
Я только что внес изменение в проект А, и он строит девять других проектов, которые ссылаются на проект А, но это не изменило код.
Есть ли хитрость, чтобы ускорить этот процесс?
6 ответов
Разделяй и властвуй. Ограничьте время сборки вашего решения, создавая дополнительные решения, содержащие логические подмножества проектов, над которыми вы работаете. Это ограничивает ваши возможности и ускоряет сборку.
См . Раздел Модель с разделенным одиночным решением в этой статье MSDN: http://msdn.microsoft.com/en-us/library/ee817674.aspx
Ключевая цитата из статьи:
Separate solution files allow you to work on smaller subsystems within your overall system
but retain the key benefits of project references. Within each subsolution file,
project references are used between constituent projects.
Это происходит, когда у проекта есть файл, который на самом деле не существует.
Проект не может определить, был ли файл изменен (потому что его там нет), поэтому он перестраивается.
Просто посмотрите на все файлы в проекте и найдите тот, у которого нет расширяемой стрелки рядом с ним.
Выбор 'build only' при щелчке правой кнопкой мыши на проекте A должен помочь. Я не уверен, есть ли способ не допустить сборки проектов, на которые ссылаются, также при создании решения (что делает стандартная команда build).
Измените детализацию сборки на подробные и посмотрите, что там написано. В моем случае мне сказали, что проект не обновлен из-за отсутствия файла.
Еще одна вещь, которую нужно искать, потому что это только что произошло со мной, заключается в том, что если вы синхронизируете свое представление с помощью ClearCase, когда ваше решение открыто, и часть вашего кода была обновлена синхронизацией, он иногда неправильно устанавливает временные метки для файлов, поэтому продолжает думать, что ваши исходные файлы были изменены и компилирует ваш проект каждый раз.
Чтобы это исправить, мне пришлось закрыть решение и снова открыть его, и оно вело себя как ожидалось.
Убедитесь, что зависимости вашего проекта верны. Щелкните правой кнопкой мыши по проекту и перейдите к "Зависимости проекта". Убедитесь, что каждый проект зависит только от минимального набора других проектов, которые необходимы для связи.