Nuget - 包恢复失败.回滚"WebApplication1"的包更改.0

use*_*195 54 c# nuget nuget-package-restore .net-core visual-studio-2017

这是我自己的定制nuget包,我还没有发布并在本地测试.

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>
Run Code Online (Sandbox Code Playgroud)

我已将nupkg文件复制到某个位置并将其添加到

Visual studio Tools -> Options -> Packages -> sources directory 
Run Code Online (Sandbox Code Playgroud)

错误:

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'.
Run Code Online (Sandbox Code Playgroud)

不确定如何解决问题或查找更多信息.

更多信息

dll文件是使用模板(.Net Framework 4.5.2)创建的

Templates -> Visual C# -> .NET Core -> Class Library (.NET Standard)
Run Code Online (Sandbox Code Playgroud)

使用模板创建Web应用程序.(空Web应用程序)

Templates -> Visual C# -> .NET Core -> ASP.NET Core Web Application (.NET Core)
Run Code Online (Sandbox Code Playgroud)

编辑

我在Output窗口下找到了更多细节

One or more packages are incompatible with .NETCoreApp,Version=v1.0.
Run Code Online (Sandbox Code Playgroud)

我应该创建哪种与.NETCoreApp兼容的类库?

EDIT2

我看到了这个网址.它建议创建nupkg使用,dotnet.exe pack --no-build而早些时候我nuget.exe从nuget.org 下载以创建包.

我尝试了上面的命令,但随后视觉工作室说

"... Target pack doesn't exists in the project ... "
Run Code Online (Sandbox Code Playgroud)

此网站上也遵循了相关说明,但网址失败

小智 150

您需要清除Nuget Cache.要执行此操作,请转到"工具" - >"选项",然后单击此图片在此输入图像描述

  • 不幸的是没有帮助我. (11认同)
  • 应该注意,这需要重新启动Visual Studio才能重新加载包,否则您的项目将被破坏. (10认同)
  • @ AH.I需要先更新另一个库(在我的例子中,它是实体框架核心).之后它起作用了 (2认同)

Ali*_*Ali 21

您的项目针对的是.Net Framework的不兼容版本.右键单击项目,选择属性并记下Target Framework的值.查看Microsoft的Nuget包,然后安装更合适的NuGet包.安装旧版本的NuGet软件包或更新项目以定位更新版本.

  • 我遇到了OP的错误,因为我添加了类库(标准)而不是类库(框架)。这个答案使我意识到了这个问题。 (2认同)