Как сохранить проект в sln visual studio
Мое текущее решение для переименования папки проекта:
-
Удалите проект из решения.
Переименуйте папку вне Visual Studio.
Повторно добавьте проект в решение.
Есть ли лучший способ?
Откройте .sln в текстовом файле и в следующей строке измените имя новой папки Project ("") = "Ricky", "\.csproj", ""
ответил(а) 2019-01-27T02:48:00+03:00 2 года, 10 месяцев назадПользователи TFS: если вы используете исходный элемент управления, который требует, чтобы вы предупреждали его перед переименованием файлов/папок, посмотрите вместо этого , который покрывает требуемые дополнительные шаги.
Чтобы переименовать папку , файл ( .*proj ) и отображаемое имя в visual studio:
-
Закройте решение.
- создать пустое решение, ничего в нем.
- переместить решение, где вы хотите, чтобы веб-проект в жизнь.
- открыть решение.
- создайте веб-проект в нужной области.
Переименуйте папку за пределы Visual Studio. (Переименуйте в TFS при использовании источника управления)
Откройте решение, игнорируя предупреждения (ответьте "нет", если его попросят загрузить проект из исходного элемента управления).
Пройдите через все недоступные проекты и.
-
Откройте окно свойства для проекта (выделите проект и нажмите Alt + Enter или F4 или щелкните правой кнопкой мыши > свойства).
Установите свойство " Путь к файлу" в новое место.
-
Если свойство не редактируется (как в VS2012), откройте файл .sln непосредственно в другом редакторе, таком как Notepad ++, и обновите там пути. (Возможно, вам нужно будет сначала проверить выход в TFS и т.д.)
Примечание. Другие предлагаемые решения, связанные с удалением и повторным добавлением проекта в решение, будут разорвать ссылки на проекты.
Если вы выполните эти действия, вы можете также переименовать следующее:
-
Сборка
По умолчанию/корневое пространство имен
Пространство имен существующих файлов (используйте инструменты рефакторинга в Visual Studio или ReSharper).
Также рассмотрите возможность изменения значений следующих атрибутов :
-
AssemblyProductAttribute
AssemblyDescriptionAttribute
AssemblyTitleAttribute
Есть и другой способ сделать это, используя файлы *.sol, * csproj.
-
откройте файл решения
найдите *.csproj, который вы хотели бы изменить
он будет таким (относительно файла *.sol):
и просто измените первую часть на новую директорию, например:
конечно, не забудьте переместить весь проект в этот каталог
Это прямо в VS 2015 (возможно, работает в более старых версиях)
-
В обозревателе решений щелкните правой кнопкой мыши по Main solution > Rename
В обозревателе решений щелкните правой кнопкой мыши по project (under solution) > Rename
В обозревателе решений дважды щелкните или щелкните правой кнопкой мыши по Properties > перейти к вкладке "Приложение", переименуйте Assembly name и Default namespace в соответствие.
Если вы хотите также переименовать пространство имен, откройте один из ваших файлов классов. Щелкните правой кнопкой мыши namespace > Rename. , чтобы искать и заменять все ссылки на ваше пространство имен во всем проекте.
Закройте проект > переименуйте project folder .
Измените .sln файл в блокноте, измените путь к cjproj. т.е. fu\bar.csproj --> bar\bar.csproj
Человек, я боролся с этим. К сожалению, в Visual Studio нет решения по одному клику, но если вы используете Visual Studio 2012, а ваш проект находится под контролем источника с Team Foundation Server, здесь как я получил его на работу, сохраняя исходную историю:
(Убедитесь, что вы прочитали комментарий @mjv ниже, поскольку он отмечает, что вы можете пропустить шаг 5-10)
Указанное выше руководство работало для меня. Если это не сработает для вас, попробуйте полностью удалить локальное решение и удалите сопоставление папок в рабочей области. Перезагрузите Visual Studio на всякий случай. Убедитесь, что вы действительно удалили все решение со своего компьютера. Теперь прочитайте сопоставление решений в вашей рабочей области и получите последнюю версию. Теперь попробуйте вышеуказанные шаги. То же самое происходит, если что-то пойдет не так, если вы выполните указанные выше шаги. Просто удалите свое решение локально и получите самый последний источник, и у вас будет чистый список, с которым вы сможете работать.
Если у вас по-прежнему возникают проблемы, убедитесь, что вы не изменили ничего вручную в файле решения или не попробовали другие "трюки", прежде чем пытаться выполнить вышеуказанные действия. Если вы что-то изменили и проверили, вы можете подумать о том, чтобы сделать откат к точке непосредственно перед тем, как вы начали возиться с переименованием проекта.
Конечно, вы также захотите переименовать сам проект в обозревателе решений. Вы можете сделать это до описанных выше шагов, но в этом случае убедитесь, что вы проверяете это изменение перед применением вышеприведенных шагов. Вы также можете сделать это после этого, но сначала убедитесь, что вы выполнили все шаги, описанные выше, и проверьте свои изменения, прежде чем пытаться переименовать имя проекта в обозревателе решений. Я не рекомендую смешивать вышеуказанные шаги с переименованием имени проекта в обозревателе решений. Это может сработать, но я бы рекомендовал сделать это в двух отдельных наборах изменений.
Решение представляет собой структуру для организации проектов в Visual Studio. Решение хранит сведения о состоянии проектов в двух файлах:
SLN-файл (на основе текста, общий)
suo-файл (двоичный, параметры решения для конкретного пользователя)
Дополнительные сведения о suo-файлах см. в разделе пользовательские параметры решения (. Файл SUO).
Если пакет VSPackage загружен в результате ссылки в файле. sln, среда вызывает ReadSolutionProps чтение в SLN-файле.
Файл. sln содержит текстовую информацию, которую среда использует для поиска и загрузки параметров "имя-значение" для сохраненных данных и проекта VSPackage, на который он ссылается. Когда пользователь открывает решение, среда циклически переключается по данным preSolution , Project и postSolution в SLN-файле для загрузки решения, проектов в решении и всех сохраненных данных, присоединенных к решению.
Файл каждого проекта содержит дополнительные сведения, считанные средой для заполнения иерархии элементами этого проекта. Сохраняемость данных иерархии управляется проектом. Обычно данные не хранятся в файле. sln, хотя вы можете намеренно записать сведения о проекте в SLN-файл. дополнительные сведения о сохраняемости см. в статьях Project сохраняемость и открытие и сохранение Project элементов.
Заголовок файла
Заголовок файла SLN выглядит следующим образом:
Определения
Microsoft Visual Studio Solution File, Format Version 12.00
Стандартный заголовок, определяющий версию формата файла.
VisualStudioVersion = 15.0.26730.15
полная версия Visual Studio, которая недавно сохраняла файл решения. если файл решения сохраняется в более новой версии Visual Studio с тем же основным номером версии, это значение не обновляется, так что, чтобы уменьшить число обновлений в файлах решения.
MinimumVisualStudioVersion = 10.0.40219.1
минимальная (самая старая) версия Visual Studio, которая может открыть этот файл решения.
Определения
Microsoft Visual Studio Solution File, Format Version 12.00
Стандартный заголовок, определяющий версию формата файла.
VisualStudioVersion = 16.0.28701.123
полная версия Visual Studio, которая недавно сохраняла файл решения. если файл решения сохраняется в более новой версии Visual Studio с той же основной версией, это значение не обновляется, чтобы уменьшить количество изменений в файле.
MinimumVisualStudioVersion = 10.0.40219.1
минимальная (самая старая) версия Visual Studio, которая может открыть этот файл решения.
Тело файла
Текст файла. sln состоит из нескольких разделов GlobalSection , например:
Чтобы загрузить решение, среда выполняет следующую последовательность задач:
Среда считывает глобальный раздел файла SLN и обрабатывает все отмеченные разделы preSolution . В этом примере файла есть одна такая инструкция:
Когда среда считывает GlobalSection('name') тег, она сопоставляет имя с пакетом VSPackage с помощью реестра. Имя ключа должно присутствовать в реестре в папке [HKLM \<приложение с идентификатором реестра root > \солутионперсистенце\аггрегатегуидс]. Значение по умолчанию для ключей — это идентификатор GUID пакета VSPackage (REG_SZ), который записал записи.
Среда загружает пакет VSPackage, вызывает QueryInterface интерфейс VSPackage для IVsPersistSolutionProps интерфейса и вызывает ReadSolutionProps метод с данными в разделе, чтобы пакет VSPackage мог хранить данные. Среда повторяет этот процесс для каждого preSolution раздела.
Среда выполняет итерацию по блокам сохранения проекта. В этом случае существует один проект.
Эта инструкция содержит уникальный идентификатор GUID проекта и идентификатор GUID типа проекта. Эти сведения используются средой для поиска файла проекта или файлов, принадлежащих решению, и пакета VSPackage, необходимого для каждого проекта. Идентификатор GUID проекта передается в IVsProjectFactory для загрузки конкретных VSPackage, связанных с проектом, затем проект загружается пакетом VSPackage. В этом случае пакет VSPackage, загруженный для этого проекта, Visual Basic.
Каждый проект может сохранять уникальный идентификатор экземпляра проекта, чтобы к нему можно было обращаться по мере необходимости в других проектах решения. В идеале, если решение и проекты находятся под управлением исходного кода, путь к проекту должен быть указан относительно пути к решению. При первой загрузке решения файлы проекта не могут находиться на компьютере пользователя. Файл проекта, хранящийся на сервере относительно файла решения, сравнительно прост для того, чтобы файл проекта был найден и скопирован на компьютер пользователя. Затем он копирует и загружает остальные файлы, необходимые для проекта.
В зависимости от сведений, содержащихся в разделе проекта файла SLN, среда загружает каждый файл проекта. Затем сам проект отвечает за заполнение иерархии проекта и загрузку всех вложенных проектов.
После обработки всех разделов файла. sln решение отображается в обозреватель решений и будет готово к изменению пользователем.
Если ни один пакет VSPackage, реализующий проект в решении, не загружается, OnProjectLoadFailure вызывается метод, и каждый другой проект в решении получает возможность игнорировать изменения, которые он мог сделать во время загрузки. При возникновении ошибок анализа, как можно больше сведений сохраняется в файлах решения, и среда отображает диалоговое окно с предупреждением о том, что решение повреждено.
При сохранении или закрытии решения QuerySaveSolutionProps метод вызывается и передается в иерархию, чтобы узнать, были ли внесены изменения в решение, которое необходимо указать в SLN-файле. Значение null, передаваемое в QuerySaveSolutionProps в VSQUERYSAVESLNPROPS , указывает, что информация сохраняется для решения. Если значение не равно null, то сохраненная информация относится к конкретному проекту, определяемому указателем на IVsHierarchy интерфейс.
Если имеются сведения для сохранения, IVsSolutionPersistence интерфейс вызывается с указателем на SaveSolutionProps метод. WriteSolutionPropsЗатем метод вызывается средой для получения пар "имя-значение" из IPropertyBag интерфейса и записи сведений в SLN-файл.
SaveSolutionProps``WriteSolutionProps объекты и вызываются рекурсивно средой для получения сведений, которые должны быть сохранены из интерфейса, IPropertyBag пока все изменения не будут введены в файл. sln. Таким образом можно убедиться, что информация будет сохранена в решении и доступна при следующем открытии решения.
Каждый загруженный пакет VSPackage перечисляется, чтобы убедиться, что в файле. sln есть что-либо, что нужно сохранить. Это происходит только во время загрузки, в которое запрашиваются разделы реестра. Среда знает обо всех загруженных пакетах, так как они находятся в памяти во время сохранения решения.
Только файл. sln содержит записи в preSolution postSolution разделах и. В файле SUO Нет похожих разделов, так как решению требуется правильная загрузка этих сведений. Suo-файл содержит пользовательские параметры, такие как закрытые заметки, которые не предназначены для совместного использования или размещения в системе управления исходным кодом.
Я использую клиент и сервер VisualSVN, и одним из требований для веб-проектов для работы, как ожидалось, является наличие .sln в том же каталоге (root), что и другие файлы.
Я думал, что это так же просто, как удаление всех дополнительных родительских путей ../ и другие относительные пути и сохранение его. Однако, когда я пытаюсь открыть его, он просто блокирует Visual Studio.
есть ли стандартный способ создать этот тип файла решения или инструмент файла решения, чтобы убедиться, что это действительны? Или я просто упускаю что-то очень очевидное?
[EDIT] что я узнал и мой финал .sln файл для этого проекта:
вот файл окончательного решения, который позволил мне открыть веб-сайт и иметь .sln в корне веб-папки.
другой вариант - при создании проекта просто снимите флажок по умолчанию для "создать каталог для решения"
обычно я начинаю с пустого решения, которое находится в разделе "Другие типы проектов-->решения Visual Studio" в диалоговом окне "новый проект". Затем добавьте веб-сайт и любые другие проекты, которые вам нужны для решения.
следующие шаги должны работать.
Я часто делаю такие перемещения, чтобы проекты хорошо сидели в svn. Не забудьте svn: игнорировать *.файлы СУО.
инструменты Goto - >параметры - >проекты и решения затем проверьте всегда показывать решение.
создайте решение, закройте его, поместите файлы туда, где вы хотите их, и отредактируйте sln.
Я не смог найти файл для моего проекта. Я смог запустить проект на одной машине без a .sln в проект. Причина, по которой он работал на машине, на которой я его создал, заключалась в том, что я держу свои проекты VS под C:\Dev\Projects но Visual Studio сохранила свое .sln файл c:\users\xyz\documents\VisualStudio2015\projects справочник. Когда я переместил файлы на новый компьютер.sln не был в том же каталоге. Я только что нашел проект, установленный на старом компьютере в c:\users\xyz\documents\VisualStudio2015\projects каталог и переместил его на мой новый компьютер. Я считаю, что я мог бы избежать этого, изменив раздел Tools - >Options - >Projects and Solutions
скопируйте существующие файлы в расположение, например. F:\Copy_webSite
открыть visual studio > файл > новый веб-сайт.
[Введите описание изображения здесь][1] Выберите папку, в которую вы скопировали файлы [Введите описание изображения здесь][2]
вам будет предложено "веб-сайт уже существует" выберите "Открыть существующий веб-сайт"
система создаст .файл sln в папке C:\Users\user\Documents\Visual Студия 2005\Проекты\Веб-Сайт [Введите описание изображения здесь][3]
система откроет текущий проект. Вы также можете скопировать .sln файл в той же папке текущего проекта. Он откроет проект в папке
просто пришлось сделать это после того, как плохая установка ОС привела к повреждению раздела и пришлось восстановить данные. Через несколько месяцев мне нужно было изменить код, но .sln файл пропал.
Использование Visual Studio 2015 Перейдите в New - > Website - > выберите корневой каталог веб-сайта, нуждающегося в новом .sln file - > Next - > он попросит создать новый сайт в каталоге или открыть веб-сайт в каталоге, очевидно, выберите последний. Не открыл никаких проблем с нулевыми ошибками, и это было даже быстро это -> сохранить проект и вы хорошо идти.
можно ли запустить Visual Studio с выгруженным проектом (недоступным при запуске)?
причина этого в том, что при запуске я часто обнаруживаю, что проекты развертывания часто зависают примерно на минуту при запуске, и они также не используются так часто.
установка этих проектов в недоступное и сохранение решения не вносит никаких изменений в файл проекта, поэтому, если у кого-либо есть предложения по этому поводу (либо в самой Visual Studio, либо через изменения в xml в рамках .sln file) я был бы признателен.
расширение vsFunnel (с поддержкой VS 2012/2013) позволяет выбирать каждый отдельный проект для загрузки, также можно сохранить и повторно использовать выбор в более позднее время:
вы можете иметь несколько файлов СЛН, один файл sln состоят проекты развертывания, другие sln файл состоять проектов необходимо.? просто скопируйте файл sln и удалите проекты, которые вам не нужны.
хотя менеджер загрузки решения, упомянутый в ответе, не обновляется для VS2012, я нашел этот другой Диспетчер Загрузки Решений расширение, которое работает.
Это не так полно, где вы можете выбрать, какие проекты загружать (он загружает проект запуска и его зависимости), но это лучше, чем загружать все проекты.
An интересная статья MSDN объясняя загрузки проекта.
для решения homebrew необходимо выполнить работу .suo файл, который содержится в скрытом каталоге, где живет файл решения. Например, если вызывается ваше решение.\Бизнес.СЛН, затем .файл suo (для VS2015) содержится по адресу: .\.vs\Business\.suo
вы можете поиграть с этим файлом, сделав резервную копию, загрузив / выгрузив некоторые проекты, закрыв решение и восстановив резервную копию; это вернет изменения, внесенные вами за это время. К сожалению, эти резервные копии почти наверняка сломается, как только что-то в решении изменится, например, проекты, которые оно содержит, и т. д.
кроме того, этот файл не является текстом, и я никогда не тратил время на изучение возможности его переноса в текст и обратно.
этот ответ не является ответом в том смысле, что он отвечает на вопрос, но это в случае, если кто-то еще читает и имеет представление. Я хотел, чтобы управление версиями было чем-то вроде чистого листа .suo файл в течение многих лет, вместе с TFS подсказка управления версиями игнорировать такой файл для привязки управления версиями. Предполагаемый результат состоял в том, что когда пользователи получают ветку в первый раз, их решения по умолчанию не загружают никаких проектов, позволяя им выборочно загружать только то, что они хотят; однако с подсказкой системы управления версиями такие изменения никогда не будут подобраны TFS или проверены, так что эта настройка не накладывала административной головной боли.
Читайте также: