Ответ 1
Я редактирую свой ответ, чтобы было ясно, что вам не нужно обновлять файл .csproj
. Как прокомментировал Дрю ниже, в этом есть свои преимущества. Тем не менее, VS2017 продолжит отлично работать с классическим файлом csproj
. Кроме того, в VS2017 нет ничего, что могло бы выполнить обновление за вас. Если вы хотите воспользоваться новым форматом, вам может помочь обзор ниже.
Обновление файла .csproj
до нового формата Visual Studio 2017 легко для простых библиотек классов или консольных проектов.
Если вы не используете контроль версий, перед началом работы обязательно сделайте резервную копию файла csproj
, а также Properties/AssemblyInfo.cs
и packages.config
. Новый файл csproj
великолепен. Во многих проектах я заменил сотни строк кода дюжиной или около того. Однако, поскольку Visual Studio 2017 продолжает поддерживать предыдущие файлы csproj
, это может быть причиной преждевременной оптимизации. Если у вас есть решение, содержащее десятки проектов, множество пакетов NuGet и любые настройки для csproj
, вы, вероятно, предпримете ненужный проект make work.
Замените все содержимое файла .csproj соответствующим кодом следующим образом.
Библиотека классов
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net462</TargetFramework>
</PropertyGroup>
</Project>
Консольное приложение
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net462</TargetFramework>
</PropertyGroup>
</Project>
Измените атрибут <TargetFramework>
на требуемую версию .NET, такую как net452, net46, net461 и т.д.
По умолчанию весь код в папке вашего проекта будет подобран компилятором. Если у вас есть код вне вашей папки проекта, вы должны явно ссылаться на него так же, как в предыдущих версиях Visual Studio и csproj
.
После внесения вышеуказанных изменений загрузите ваше решение в Visual Studio 2017. На этом этапе должны быть собраны самые основные проекты. Если нет, вам, вероятно, нужно добавить отсутствующие ссылки на сборки или проекты. Добавление ссылок очень похоже на это в предыдущих версиях Visual Studio. Выберите свой проект в обозревателе решений, щелкните правой кнопкой мыши Dependencies
и выберите Add Reference
. Добавьте любые ссылки на Framework или Project, которые вам не хватает.
Попытайтесь построить ваше решение/проект снова. Вы можете получить ошибки о дубликатах атрибутов. Эта ошибка вызвана тем, что атрибуты, ранее определенные в AssemblyInfo.cs
, были перемещены в файл csproj. Удаление файла AssemblyInfo.cs
, находящегося в папке Properties, должно устранить эти ошибки. Перед удалением AssemblyInfo.cs
вы должны переместить любые данные, которые вы определили. Большинство атрибутов можно ввести в разделе информации о пакете файла вашего проекта. Щелкните правой кнопкой мыши на имени вашего проекта, выберите страницу пакета и введите любые данные, которые ранее были определены в вашем файле AssemblyInfo.cs
. Сюда входят такие элементы, как версия сборки, автор, авторские права и т.д.
Ниже приведен снимок экрана, на котором показан предыдущий шаг.
Если вы используете какие-либо пакеты NuGet в своем проекте, вам также необходимо переместить их в новый формат. До Visual Studio 2017 NuGet полагался на файл с именем Packages.config
в корневом каталоге вашего проекта в дополнение к ссылкам в csproj
. Чтобы перенести ссылки на пакеты NuGet, щелкните правой кнопкой мыши свое решение и загрузите диспетчер пакетов Nuget. После загрузки в верхнем правом углу щелкните значок, и загрузятся параметры диспетчера пакетов NuGet. Выберите General
. В разделе Управление пакетами измените параметр Default package management format
на PackageReference. На этом этапе вам придется вручную добавить все ваши пакеты NuGet обратно в ваше решение. Вы можете найти все пакеты в файле packages.config
в корневой папке проекта. После того, как вы добавили все пакеты обратно, вы можете удалить файл packages.config
.