20

Это мой собственный пакет nuget, который я еще не опубликовал и не тестировал локально.Nuget - восстановление пакета завершилось неудачно. Откат изменений пакета для «WebApplication1». 0

Пакет nuget состоит из файла dll и файла nuspec следующим образом.

<?xml version="1.0"?> 
<package > 
    <metadata> 
    <id>MyLib</id> 
    <version>1.0.0</version> 
    <authors>Author</authors> 
    <owners>Owner</owners> 
    <licenseUrl>license url</licenseUrl> 
    <projectUrl>project url</projectUrl> 
    <requireLicenseAcceptance>false</requireLicenseAcceptance> 
    <description>some description</copyright> 
    <tags>Tag1 Tage2</tags> 
    </metadata> 
    <files> 
    <file src="bin\Debug\netstandard1.4\*.dll" target="lib" /> 
    <file src="bin\Debug\netstandard1.4\*.pdb" target="lib" /> 
    </files> 
</package> 

Я скопировал файл nupkg в папку и добавить его в

Visual studio Tools -> Options -> Packages -> sources directory 

Ошибка:

Package MyLib 1.0.0 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package MyLib 1.0.0 supports: net (.NETFramework,Version=v0.0) 
Package restore failed. Rolling back package changes for 'WebApplication1'. 

Не знаю, как я могу решить эту проблему или найти больше информации.

Подробнее

файл DLL был создан с помощью шаблона (.Net Framework 4.5.2)

Templates -> Visual C# -> .NET Core -> Class Library (.NET Standard) 

Веб-приложение было упаковали с помощью шаблона. (Empty Web Application)

Templates -> Visual C# -> .NET Core -> ASP.NET Core Web Application (.NET Core) 

Редактировать

я нашел больше информации под Output окне

One or more packages are incompatible with .NETCoreApp,Version=v1.0. 

Какие библиотеки классов я должен создать, который совместим с .NETCoreApp?

Edit2

Я видел этот URL. он предлагает создать nupkg, используя dotnet.exe pack --no-build, тогда как ранее я загрузил nuget.exe с сайта nuget.org, чтобы создать пакет.

Я попытался выше команды, но затем Visual Studio говорит

"... Target pack doesn't exists in the project ... " 

следовал инструкциям на этом сайте, а также, но не URL

+1

Извините за путаницу, почему вы упомянули .Net Framework 4.5.2, если вы хотите настроить таргетинг .netcore? –

+0

да, это тоже смущает меня, когда я выбираю «Новый проект -> Шаблоны -> .Net Core -> Библиотека классов (.NET Standard)», .NET Framework 4.5.2 указан в верхней части диалогового окна в раскрывающемся меню (вот почему я упомянул), поэтому я не уверен, какой шаблон проекта следует выбрать для создания подходящего типа dll для использования с ядром .net. – user2727195

+0

Вы видели этот [один] (https://docs.microsoft.com/en-us/nuget/guides/create-net-standard-packages-vs2017)? А именно, что «с проектами NuGet 4.0 и .NET Core метаданные пакета содержатся непосредственно в .csproj' –

ответ

77

Вам необходимо очистить кэш NuGet. Для этого перейдите в Инструменты -> Параметры и нажмите на него, как показано на рисунке enter image description here

+2

Обратите внимание, что это находится в меню Сервис -> Параметры. Большое спасибо! –

+7

Следует учитывать, что для перезагрузки пакетов требуется перезагрузка Visual Studio, иначе ваш проект будет поврежден. – ThePartyTurtle

+5

Не помог мне, к сожалению. –

4

Ваш проект нацелен на несовместимую версию .Net Framework. Щелкните правой кнопкой мыши по проекту, выберите свойства и обратите внимание на значение целевой структуры. Посмотрите на пакет Nuget для Microsoft, а затем установите более подходящий пакет NuGet. Либо установите более старую версию пакета NuGet, либо обновите свой проект, чтобы настроить его на более новую версию.

+0

Я столкнулся с ошибкой OP, потому что вместо библиотеки классов (Framework) я добавил библиотеку классов (стандарт). Этот ответ заставил меня понять проблему. – ScubaSteve

Смежные вопросы