无法安装包' - '。您正在尝试将此软件包安装到以“.NETFramework,Version = v4.5”为目标的项目中

时间:2017-02-04 10:09:00

标签: nuget nuget-package nuget-spec

我创建了这个包,我在项目中需要它但无法安装它,出现此错误:

  

无法安装包'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>

11 个答案:

答案 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...中的其他版本即可。您肯定会为您的插件找到正确的套件版本。