Создание и очистка проектов и решений в Visual Studio
Область применения:Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Процедуры, описанные в этом разделе, используются для построения, перестроения или очистки всех или некоторые проектов или элементов проекта в решении. Пошаговые инструкции см. в разделе Пошаговое руководство. Построение приложения.
Этот раздел относится к Visual Studio в Windows. Информацию о Visual Studio для Mac см. в статье Создание и очистка проектов и решений в Visual Studio для Mac.
Пользовательский интерфейс в вашем выпуске Visual Studio может отличаться от приведенного в этом разделе в зависимости от ваших текущих параметров. Чтобы изменить параметры, например на Общие или Visual C++, выберите Сервис>Импорт и экспорт параметров, а затем щелкните Сбросить все параметры.
Сборка, перестроение или очистка всего решения
- В обозревателе решений откройте решение или выберите нужное решение.
- В строке меню выберите Сборка, а затем одну из следующих команд.
- Выберите Собрать или Собрать решение либо нажмите клавиши CTRL+SHIFT+B, чтобы скомпилировать только те файлы и компоненты проекта, которые были изменены с момента последней сборки.
Примечание. Если решение содержит несколько проектов, команда Собрать меняется на Собрать решение.
Сборка или перестроение одного проекта
- В обозревателе решений выберите или откройте решение.
- В строке меню выберите Сборка, а затем выберите либо Собратьимя_проекта, либо Перестроитьимя_проекта.
- Выберите Собратьимя_проекта, чтобы собрать только те компоненты проекта, которые были изменены с момента последней сборки.
- Выберите ПерестроитьИмя_проекта, чтобы очистить проект, а затем выполнить сборку файлов проекта и всех его компонентов.
Сборка только запускаемого проекта и его зависимостей
- В строке меню выберите Сервис>Параметры.
- В диалоговом окне Параметры разверните узел Проекты и решения и выберите страницу Сборка и запуск. Откроется диалоговое окно Сборка и запуск>Проекты и решения>Параметры.
- Установите флажок При выполнении построить только запускаемые проекты и зависимости. При выборе этого поля проверка только текущий проект запуска и его зависимости создаются при выборе параметра «Запуск отладки» (F5) или «Запуск отладки>> без отладки» (CTRL+F5). При выборе решения сборки> (CTRL+SHIFT+B) создается все решение. После очистки этого поля проверка все проекты, их зависимости и файлы решения создаются при выполнении любой из предыдущих команд.
Сборка только выбранного проекта Visual C++
Выберите проект C++, а затем в строке меню выберите Сборка>Только проект и одну из следующих команд:
Эти команды применяются только к выбранному проекту C++ без сборки, перестроения, очистки или связывания зависимостей проектов и файлов решения. В зависимости от используемой версии Visual Studio подменю Только проект может содержать дополнительные команды.
Компиляция нескольких элементов проекта C++
В Обозреватель решений выберите несколько файлов, которые можно скомпилировать, откройте контекстное меню для одного из этих файлов, а затем нажмите кнопку «Компиляция» или нажмите клавиши CTRL+F7.
Если файлы имеют зависимости, они будут скомпилированы в порядке зависимостей. Операция компиляции завершится ошибкой, если файлам требуется предкомпилированный заголовок, который недоступен при компиляции. Операция компиляции использует текущую активную конфигурацию решения.
Остановка сборки
Выполните одно из следующих действий.
См. также
- Практическое руководство. Просмотр, сохранение и настройка файлов журнала сборки
- Получение журналов сборки
- Компилирование и сборка
- Общие сведения о конфигурациях сборки
- Практическое руководство. Настройка конфигураций отладки и выпуска
- Справочные сведения о сборке C/C++
- Параметры командной строки для команды devenv
- Проекты и решения
- Создание и очистка проектов и решений (Visual Studio для Mac)
Visual Studio пересобирает проект, если одна из зависимостей обновилась
Всё думал, отчего столько проектов всякий раз перестраиваются, хотя в последний раз я их менял давным-давно. Поглядел в лог:
Project ‘.Controls’ is not up to date. Input file ‘.tools.dll’ is modified after output file ». Project ‘.Sharing’ is not up to date. Input file ‘.controls.dll’ is modified after output file ». Project » is not up to date. Input file ‘.controls.dll’ is modified after output file ‘.pdb’.
Получается, при изменении одной строчки в любой из широко используемых библиотек VS пересобирает всё остальное. Есть ли в этом какой-то смысл помимо проверки на возможные ошибки (чего можно добиться и иначе)? Отключается ли подобное поведение на уровне VS или придётся колдовать с touch ? UPD: Собрал какое-то дурацкое решение с манипуляцией временами изменения файлов, можно будет держать включённым в периоды каких-нибудь очень частых перезапусков (отладки интерфейса, например), но не более того. Конечно, круто, что запускается практически мгновенно, но что-то мне подсказывает, что однажды это выйдет боком. 🙂
Visual Studio переместить проект в другую папку
Как переместить проект в другую папку в Visual Studio? Я привык к этой структуре в моих проектах.
-- app ---- Project.Something ---- Project.SomethingElse
Я хочу переименовать все пространство имен SomethingElse в SomethingNew, как лучше всего это сделать (не заходя вручную в файл .sln)?
Используете ли вы TFS в качестве поставщика управления исходным кодом?
Вы хотите переименовать только папку или весь проект?
Проект, папка и пространство имен.
Возможный дубликат Как переименовать папку проекта из Visual Studio?
Удалите проект из решения, щелкнув его правой кнопкой мыши в окне обозревателя решений и выбрав «Удалить». Переместите всю папку проекта, включая подкаталоги, куда вы хотите. Добавьте проект обратно в ваше решение.
Имена пространства имен — это нечто совершенно другое, просто отредактируйте исходный код.
Это то, что я сделал, но я подумал, что есть способ сделать все это, не удаляя весь проект, что заставляет меня заново добавлять все зависимости.
Перед удалением проекта, который вы хотите переместить, выгрузите все зависимые проекты из решения. Таким образом, они не обнаруживают удаление, а ссылки на проекты остаются неизменными. После перемещения проекта и повторного добавления его в решение вы можете снова загрузить зависимые проекты.
Не забывайте, что удаление файла в TFS, а затем его повторный импорт в TFS в другом каталоге или проекте приводит к удалению истории изменений файла.
Я хочу сделать это без потери истории изменений, поэтому я могу делать сравнения, когда захочу.
Я попытался предложить удалить и повторно добавить проект, но тогда исправление зависимостей может быть проблемой.
Я использую этот подход:
- Переместите папку проекта.
- Если проект находится в управлении исходным кодом, выполните перемещение с помощью команд управления исходным кодом.
- Отредактируйте файл решения в текстовом редакторе. Там должен быть только один путь, который вам нужно изменить.
Определенно проще! Но после того, как я переместил и отредактировал решение, используя текстовое редактирование, файл решения показывается внизу как обычный текстовый файл. Как мне избавиться от этого?
«Если проект находится в управлении исходным кодом, выполните перемещение с помощью команд управления исходным кодом». .. Можете ли вы объяснить, как это сделать?
@AnishV Например, если вы используете Git, введите git mv . вместо mv . . Смотрите git-mv документацию для получения дополнительной информации.
В файле .csproj необходимо обновить свойство SolutionDir, а также исправить все пути для ссылок на проекты и расположения пакетов nuget. В файле .sln все, что вам нужно сделать, это обновить путь к проекту.
Это сработало для меня. Единственным «трюком» было то, что мне пришлось изменить файл .sln, чтобы редактировать его было не только для чтения, а затем снова пометить его как «только для чтения» в целях безопасности.
- Закройте свое решение в VS2012
- Переместите свой проект на новое место
- Откройте ваше решение
- Выберите проект, который не удалось загрузить
- В окне инструмента Свойства есть редактируемая запись «Путь к файлу», которая позволяет вам выбрать новое местоположение проекта
- Установите новый путь
- Щелкните правой кнопкой мыши по проекту и нажмите перезагрузить
Это работает очень хорошо и, казалось бы, самый быстрый и простой способ, несмотря на другие гораздо более высокие ответы. Здесь есть статья: msmvps.com/blogs/deborahk/archive/2010/06/30/…
@MikeRosenblum Ссылка не работает, новая ссылка — blogs.msmvps.com/deborahk/…
Не работает в VS2012. В связанной статье также упоминается только VS2010.
В VS2010 у меня все работало нормально, включая все мои ссылки, кроме 1, который мне пришлось добавить заново.
@Vasanth В Visual Studio 2019 вам нужно вручную отредактировать файл .sln, чтобы найти проект; и, возможно (вероятно) файл .csproj, чтобы ссылаться на правильное расположение любых пакетов nuget.
То, что работало для меня, было:
- Удалить проект из решения.
- Отредактируйте файл проекта с помощью текстового редактора.
- Обновите все относительные пути к «пакетам». В моем случае мне пришлось перейти ..\packages на ..\..\..\packages так как я переместил проект в более глубокую папку.
- Загрузите проект обратно в решение.
У меня такая же проблема. Я решил переместить ссылки и менее чем за 15 минут, без изменения ссылок.
Для меня решение было простым:
- Переместите свои файлы туда, где вам нужно.
- Удалите папку с именем .vs. Должна быть как невидимая папка.
- Откройте файл решения (.sln) с помощью простого редактора, такого как note или notepad ++.
- Измените ссылку, где находится ваш файл, используя следующую структуру: если вы поместили свой проект в ту же папку, удалите предыдущую папку или ссылку «.. \»; если вы положили в вышеупомянутую папку, добавьте ссылку «.. \» или название папки.
- Сохраните файл с изменениями.
- Откройте файл проекта (.csproj) и сделайте то же самое, удалите или добавьте ссылку.
- Сохраните изменения.
- Откройте файл решения.
В файле решения (.sln)
В файле проекта:
- Оригинал: Новое: Оригинальная ссылка: . \ lib \ RCWF \ 2018.1.220.40 \ TelerikCommon.dll Новая ссылка: .. \ lib \ RCWF \ 2018.1.220.40 \ TelerikCommon.dll
Описание: переименование и перемещение в VS2019 с использованием git, сохранение истории git, использование R # немного, автоматическое обновление зависимых ссылок на проекты (важно для sln со многими проектами, у нас> 200)
Я использовал следующие шаги для переименования и перемещения проектов C # в Visual Studio 2019. Этот процесс использует R # для настройки пространств имен. История git сохраняется путем выполнения git mv (избегая удаления / удаления истории).
Два этапа: 1) переименовать проект на месте и 2) переместить проект.
(Использует подсказку от base2 по разгрузке проектов.)
Rename
- VS | Обозреватель решений | щелкните правой кнопкой мыши проект | Переименуйте (например, Utils.Foo в Foo).
- VS | Обозреватель решений | щелкните правой кнопкой мыши проект | Свойства | изменить имя сборки, пространство имен по умолчанию и поля информации о сборке
- Выполните 1 и 2 для соответствующего тестового проекта (например, Utils.Foo.Tests)
- VS | Обозреватель решений | проекты правой кнопкой мыши (производство и тестирование) | Рефакторинг | Настройте пространства имен
- Возможно, потребуется обновить файлы XAML, которые используют проект (вручную или с помощью соответствующего глобального поиска и замены).
- Восстановить все
- Фиксировать !! (совершать изменения до ходов)
Примечание. Папка в проводнике Windows до сих пор остается старым именем (например, Utils.Foo). Это исправлено в шагах переезда.
Шаг
Этот метод: 1) сохраняет историю мерзавцев, 2) использует R # для атомарной настройки пространств имен и 3) массово обновляет зависимые проекты (избегает утомительного ручного редактирования зависимых файлов sln и csproj).
- выгрузить все проекты в решении (чтобы удаление целевого проекта не приводило к изменениям в зависимых проектах) VS | выберите все папки решений под Решением | щелкните правой кнопкой мыши по разгрузке проектов
- перемещать папки с помощью git (чтобы история сохранялась)
а) открыть командную строку разработчика на 2019 год
б) git status (чтобы проиллюстрировать «нечего коммитить, чистое дерево работы»)
c) git mv проекта, например, git mv «C: \ Code \ foo \ foo \ Utils.Foo» «C: \ Code \ Foo»
d) статус git для просмотра / проверки изменений
VS | Обозреватель решений | выбрать проект | щелкните правой кнопкой мыши | Удалить (так как все проекты выгружены, это правильно НЕ удалит ссылки на него в зависимых проектах)
- повторно добавить проект (в новое место в дереве в обозревателе решений)
а) VS | Обозреватель решений | выберите целевую родительскую папку | щелкните правой кнопкой мыши | Добавить | Существующий проект
- перезагрузить все проекты
ВАЖНО: Убедитесь, что файлы * .csproj для зависимых проектов были обновлены.
(VS | Team Explorer | Изменения | дважды щелкните любой зависимый csproj в списке | inspect-verify изменение пути ProjectReference)
- Исправьте пути вручную в одном перемещенном файле * .csproj
Используйте Notepad ++ (или другой текстовый редактор), чтобы исправить пути. Часто это можно сделать с помощью простого поиска и замены (например, ../../../../ to ../../).
а) ссылки GlobalAssmeblyInfo.cs
б) пути к пакетам
c) пути к файлам диаграмм проверки зависимостей
d) пути к путям набора правил (например,
- Закройте и снова откройте решение (чтобы привести ссылки на проект в хорошую форму)
Сохранить все, закрыть решение, я предпочитаю удалять папки bin и obj, чтобы очистить историю, заново открыть решение
а) VS | Team Explorer | изменения
я) должен увидеть поэтапные изменения, которые показывают файлы, которые были перемещены; ii) должен увидеть зависимые проекты (* .csproj), которые были приятно обновлены, просмотреть изменения в csproj и заметить, что пути были красиво обновлены !! (это магия, которая позволяет избежать кропотливого ручного обновления файлов csproj с помощью текстового редактора)
б) в проводнике Windows убедитесь, что старое местоположение пусто
c) Чистое решение, восстановление решения, запуск модульных тестов, запуск приложений в sln.
Установить пакет Microsoft Advertising SDK
Чтобы показывать рекламу в приложениях UWP для Windows 10 и Windows 11, установите microsoft Advertising SDK. Этот пакет SDK является расширением Visual Studio 2015 и последующих версий.
Если вы разрабатываете приложение UWP для JavaScript или HTML и установили пакет SDK для Windows 10 версии 10.0.14393 (юбилейное обновление) или более поздней, необходимо также установить библиотеку WinJS . Эта библиотека ранее включалась в предыдущие версии Windows 10 SDK, но, начиная с Windows 10 SDK версии 10.0.14393 (юбилейное обновление), ее необходимо устанавливать отдельно.
Установка с помощью MSI
Установка Microsoft Advertising SDK с помощью установщика MSI.
- Закройте все экземпляры Visual Studio.
- Если вы ранее устанавливали какую-либо из предыдущих версий пакетов Microsoft Advertising SDK, Universal Ad Client SDK, расширения Ad Mediator или Microsoft Store Engagement and Monetization SDK, теперь необходимо удалить эти версии пакетов SDK. Другой вариант: откройте окно командной строки и выполните эти команды для удаления всех более ранних версий пакетов рекламных SDK, которые могли быть установлены вместе с Visual Studio, но, возможно, не отображаются в списке установленных программ на компьютере:
MsiExec.exe /x MsiExec.exe /x MsiExec.exe /x
В противном случае, если вы используете пакет Microsoft Advertising SDK в первый раз в своем проекте, теперь вы готовы добавить ссылку на Microsoft Advertising SDK.
Установка с помощью NuGet
Установка библиотек Microsoft Advertising SDK в конкретный проект UWP с помощью NuGet.
- Закройте все экземпляры Visual Studio.
- Если вы ранее устанавливали какую-либо из предыдущих версий пакетов Microsoft Advertising SDK, Universal Ad Client SDK, расширения Ad Mediator или Microsoft Store Engagement and Monetization SDK, теперь необходимо удалить эти версии пакетов SDK. Другой вариант: откройте окно командной строки и выполните эти команды для удаления всех более ранних версий пакетов рекламных SDK, которые могли быть установлены вместе с Visual Studio, но, возможно, не отображаются в списке установленных программ на компьютере:
MsiExec.exe /x MsiExec.exe /x MsiExec.exe /x
Примечание Если ваш проект уже содержит ссылки на библиотеки из предыдущей установки пакета SDK с помощью MSI, удалите эти ссылки из проекта. Рядом с этими ссылками будут расположены предупреждающие значки, поскольку библиотеки, на которые они ссылаются, были удалены ранее.
Примечание Если в окне Вывод содержится ошибка Install-Package, указывающая, что заданный путь слишком длинный, вам может потребоваться настроить NuGet, чтобы извлечь пакеты в альтернативное расположение с более коротким путем, чем расположение по умолчанию. Для этого добавьте значение repositoryPath в файл nuget.config на компьютере и задайте ему более короткий путь к папке, куда можно извлечь пакеты NuGet. Дополнительные сведения см. в этой статье в документации NuGet. Кроме того можно попробовать переместить проект Visual Studio в другую папку с более коротким путем.
В противном случае, если вы используете пакет SDK в первый раз в своем проекте, теперь вы готовы добавить ссылку на Microsoft Advertising SDK.
Добавление ссылки на Microsoft Advertising SDK
После установки пакета Microsoft Advertising SDK следуйте этим инструкциям, чтобы создать ссылку на SDK в своем проекте и иметь возможность использовать рекламные API-интерфейсы.
-
Откройте проект в Visual Studio.
Примечание Если ваш проект направлен на работу на Любом ЦП, обновите его, чтобы он использовал результаты сборки, предназначенные для определенной архитектуры (например, x86). Если ваш проект направлен на работу на Любом ЦП, вам не удастся надлежащим образом добавить ссылку на Microsoft Advertising SDK в приведенных ниже шагах. Дополнительные сведения см. в разделе Ошибки, вызванные указанием варианта «Любой ЦП» как целевого в вашем проекте.
Руководства, в которых рассказывается, как приступить к использованию API рекламы, см. в следующих статьях.
- Межстраничные объявления
- Собственные объявления
- AdControl в XAML и .NET
- AdControl в HTML 5 и JavaScript
Общие сведения о пакетах платформы в Microsoft Advertising SDK
Библиотека Microsoft.Advertising.dll в microsoft Advertising SDK (для приложений UWP) настроена как пакет платформы. Эта библиотека содержит рекламные API-интерфейсы в пространствах имен Microsoft.Advertising и Microsoft.Advertising.WinRT.UI.
Поскольку библиотека представляет собой пакет платформы, это означает, что после установки пользователем версии вашего приложения, которое применяет эту библиотеку, библиотека будет автоматически обновляться на устройстве пользователя через Центр обновления Windows, когда мы опубликуем новую версию библиотеки с исправлениями и улучшенной производительностью. Это позволяет гарантировать, что ваши клиенты всегда будут иметь последнюю доступную версию библиотеки на своих устройствах.
Если мы выпустим новую версию SDK с новыми API или функциями в этой библиотеке, вам придется установить последнюю версию пакета SDK, чтобы использовать их. В этом случае вам также понадобится опубликовать обновленное приложение в Магазине.
