2017-02-06 165 views
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框架4.5.2)创建

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

Web应用程序是使用模板装箱。 (空Web应用程序)

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。它建议使用dotnet.exe pack --no-build创建nupkg,而之前我从nuget.org下载nuget.exe来创建该包。

我想上面的命令,但随后的Visual Studio说

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

本网站随后说明,以及但是失败URL

+1

对不起,为什么你提到.Net Framework 4.5.2如果你想要的目标.netcore? –

+0

是的,当我选择'新建项目 - >模板 - >。核心 - >类库框架(.NET标准)'时,我也感到困惑,.NET Framework 4.5.2列在对话框的顶部在下拉菜单中(这就是为什么我提到),所以我不知道应该选择什么样的项目模板来创建与.net核心一起使用的正确类型的dll。 – 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包,然后安装更适合的NuGet包。要么安装旧版本的NuGet软件包,要么更新您的项目以定位新版本。

+0

我遇到了OP的错误,因为我添加了一个类库(标准),而不是类库(框架)。这个答案让我意识到了这个问题。 – ScubaSteve