我创建了这个包,我在项目中需要它但无法安装它,出现此错误:
无法安装包'Mshwf.NiceLinq 1.0.9'。你正试图 将此包安装到目标项目中 '.NETFramework,Version = v4.5',但包中不包含任何内容 程序集引用或与之兼容的内容文件 框架。有关更多信息,请与软件包作者联系
我不知道为什么会发生这种情况,在另一个项目(Console)中我将框架更改为4.6和其他版本并且它不是问题,但这只发生在这个项目(MVC和Web API)中: / p>
这是nuspec文件:
<?xml version="1.0"?>
<package >
<metadata>
<id>Mshwf.NiceLinq</id>
<version>1.0.9</version>
<title>Nice LINQ</title>
<authors>MShawaf</authors>
<owners>Mshawaf</owners>
<projectUrl>https://github.com/mshwf/NiceLinq</projectUrl>
<iconUrl>https://raw.githubusercontent.com/mshwf/NiceLinq/master/logo.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>See it as: WHERE ID IN (1, 2, 3, 7, 9, 22, 30, 101)</description>
<releaseNotes>Minor changes.</releaseNotes>
<copyright>Copyright 2016</copyright>
<tags>LINQ IEnumerable Where Contains Search Filter</tags>
</metadata>
</package>
答案 0 :(得分:8)
您的软件包的目标是NETFramework,Version = v4.5.2。这意味着程序集文件夹是lib \ net452。您正在尝试将程序包安装到更高的框架(大于4.5)项目。使用框架4.5.2创建项目,或者将软件包的lib文件夹从net452重命名为您要定位的版本,如net45或net46。
您也可以从单个包中定位多个框架。
请参阅此处:https://docs.microsoft.com/en-us/nuget/create-packages/supporting-multiple-target-frameworks
答案 1 :(得分:0)
在我的情况下,我试图插入一个我们自己制作的包,我们将其放入我们自己的Nuget Feed中,因此我可以访问该项目。 这就是我为解决这个问题所做的工作。在项目解决方案窗口中,单击packages.config。在属性窗口中,将构建操作更改为“内容”。在将它再次推送到我们的Feed之后,我能够将它安装到主项目中。
答案 2 :(得分:0)
您可以安装以下早期版本:Install-Package AutoMapper -Version 7.0.1
答案 3 :(得分:0)
转到文件夹:
C:\Users\[username]\.nuget\packages\[package name]\1.0.0.4\lib
使用项目的.net版本重命名文件夹。
假设我使用的是.net Framework 4.6.1,我的文件夹名称应为net461
答案 4 :(得分:0)
在我的情况下,我试图将软件包安装到WPF应用程序(.Net Framework)中,而我的同事为.Net Core Project准备了软件包。
尝试创建.Net Core项目(或目标项目类型),并以相同的方式安装软件包:
解决方案资源管理器>右键单击“解决方案”>“为解决方案管理Nuget软件包”>搜索所需的软件包>“安装”
在其他解决方案之前进行检查可以节省时间。
答案 5 :(得分:0)
我遇到了类似的问题,可以通过删除packages.config(如果不想删除,可以编辑文件)文件来解决,然后确保我使用的两个软件包都使用相同的.net版本构建。就像我在其中使用的项目一样(对于我来说,该软件包是使用4.6构建的,而我的控制台项目则以.net的早期版本为目标)。
答案 6 :(得分:0)
更新Application .NET目标框架可以解决此问题。就我而言,我正在安装EmguCv 4.2软件包。当尝试使用4.5.1 .NET目标框架进行构建时,出现了同样的错误。将.NET目标框架更新为4.6.2之后,我可以成功安装EmguCv 4.2 Nuget软件包。
答案 7 :(得分:0)
尝试安装.net SDK here,然后右键单击您的解决方案/项目并“还原nuget程序包”
答案 8 :(得分:0)
我在自己的私有nuget服务器上创建并托管了一个软件包时遇到了这个问题,但是即使在尝试了其他建议(例如确保该软件包支持正确的.net框架版本)之后,它仍然无法正常工作
我让其他人尝试,他们设法毫无问题地添加了它。 今天,在VS的选项中,我找到了解决方法: 选项-> NuGet软件包管理器->常规->清除所有NuGet缓存
How to clear nuget cache in visual studio
希望这可以帮助像我一样困惑的人:D
答案 9 :(得分:0)
.NET Target Framework 版本很可能太旧了。我有 VS 2017,我的新 .NET Framework 项目的默认目标框架是 4.0。我最初尝试安装 RestSharp 包,但它失败了,并显示了与这篇文章中几乎相同的消息“无法安装包...”但是,当我转到 Project |属性 |和应用程序,我能够将目标框架更改为 .NET Framework 4.6.1,然后安装正常。
答案 10 :(得分:-2)
您只需在visual studio菜单上尝试manage NuGet packages for solution...
中的其他版本即可。您肯定会为您的插件找到正确的套件版本。