Если вы используете VS2015 Update 1 или новее, вы можете convert your project to use project.json
to fix this.
Короче:
- Run
Uninstall-Package <package name> -Force -RemoveDependencies
для всех пакетов. Вы можете скопировать в свой блокнот packages.config
, прежде чем делать это.
- Удалить
packages.config
из проекта, сохранить проект, выгрузить
- Отредактируйте файл проекта и удаления:
- Любые ссылки
.props
файлы в верхней части, связанной с NuGet
- Есть
<Reference>
элементы, которые ссылаются на пакет
.targets
в нижней части этого справочника nuget - обычно начинается с: <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
- Если ваши пакеты содержат анализаторы Roslyn, ma Также обязательно удалите их.
- Сохраните файл и relod проект
Добавить project.json
с:
{
"dependencies": {
},
"frameworks": {
".NETFramework,Version=v4.6.1": {}
},
"runtimes": {
"win": {}
}
}
Наконец добавить свои пакеты снова, либо вручную под dependencies
или с использованием Install-Package
или с NuGet UI в VS.
Мне также пришлось удалить любые Microsoft.Bcl.*
пакеты из моих проектов, потому что они явно ищут файл packages.config
.
EDIT:. Это (удаление Microsoft.Bcl.*
пакетов даст вам ошибку времени компиляции, несмотря на то, что проект будет строить хорошо, потому что .targets
файл Microsoft.Bcl.Build
добавляет все еще ищет packages.config
Чтобы подавить это, редактировать ваш файл проекта и добавьте:.
<SkipValidatePackageReferences>true</SkipValidatePackageReferences>
Это необходимо, чтобы перейти к первому <PropertyGroup>
что не установлен атрибут Condition
Если не один, просто добавьте еще один в верхней части, как:
<PropertyGroup>
<SkipValidatePackageReferences>true</SkipValidatePackageReferences>
</PropertyGroup>
Возможный дубликат [NuGet не получает недостающие пакеты] (http://stackoverflow.com/ques/17797052/nuget-not-getting-missing-packages) –