【问题标题】:Could not install package '--'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.5'无法安装软件包“--”。您正在尝试将此包安装到以 '.NETFramework,Version=v4.5' 为目标的项目中
【发布时间】:2017-06-21 16:47:40
【问题描述】:

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

无法安装软件包“Mshwf.NiceLinq 1.0.9”。你正试图 将此软件包安装到目标项目中 '.NETFramework,Version=v4.5',但包中不包含任何 与之兼容的程序集引用或内容文件 框架。如需更多信息,请联系包作者

不知道为什么会这样,在另一个项目(Console)中我把框架改成4.6等版本都没有问题,但是这只发生在这个项目(MVC和Web API)中:

这是 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>

【问题讨论】:

    标签: nuget nuget-package nuget-spec


    【解决方案1】:

    您的包以 NETFramework,Version=v4.5.2 为目标。这意味着程序集文件夹是 lib\net452。您正在尝试将包安装到更高的框架(大于 4.5)项目。使用框架 4.5.2 创建一个项目,或将包的 lib 文件夹从 net452 重命名为您想要定位的版本,如 net45 或 net46。

    您也可以从一个包中定位多个框架。

    像这样编辑你的 csproj 文件:

    &lt;TargetFrameworks&gt;netstandard2.0;net45&lt;/TargetFrameworks&gt;

    参考这里:https://docs.microsoft.com/en-us/nuget/create-packages/supporting-multiple-target-frameworks

    有关目标框架名称的完整、最新列表,请参阅https://docs.microsoft.com/en-us/nuget/reference/target-frameworks#supported-frameworks

    【讨论】:

    • Mshwf.NiceLinq 1.0.9 包以 .NET 4.5.2 为目标,这就是它无法安装到 .NET 4.5 项目中的原因。所以他们需要创建一个 .NET 4.5.2 项目。但是,您的答案几乎是正确的。我修改你的答案是正确的 - 希望你不介意。
    【解决方案2】:

    转到文件夹:

    C:\Users\[username]\.nuget\packages\[package name]\1.0.0.4\lib
    

    使用项目的 .net 版本重命名文件夹。

    假设我使用的是 .net framework 4.6.1,我的文件夹名称应该是 net461

    【讨论】:

    • 这种方法有什么缺点?
    • 这个解决方案是迄今为止我唯一有效的解决方案,以解决 Microsoft.ServiceHub.Analyzers 包,无法安装在项目上或使用此包作为依赖项的任何包!只需添加相应的目标版本(对我来说是 lib\net472),然后在这个新文件夹中复制根“untargeted”文件夹,一切都像一个魅力,即使对于需要它作为依赖项的包,如 Microsoft.VisualStudio.Shell .15.0 .谢谢你的伎俩!
    【解决方案3】:

    您可以安装早期版本,例如:Install-Package AutoMapper -Version 7.0.1

    【讨论】:

      【解决方案4】:

      在我的例子中,我试图将包安装到 WPF 应用程序 (.Net Framework) 中,而我的同事正在为 .Net Core 项目准备包。

      尝试创建一个 .Net Core 项目(或目标项目类型的类型)并以相同的方式安装包:

      解决方案资源管理器>右键单击解决方案>管理解决方案的 Nuget 包>搜索所需的包>安装

      在其他解决方案之前检查这一点可能会节省时间。

      【讨论】:

        【解决方案5】:

        .NET Target Framework 版本很可能太旧了。我有 VS 2017,我的新 .NET Framework 项目的默认目标框架是 4.0。我最初尝试安装 RestSharp 包,但它失败了,消息几乎与这篇文章“无法安装包 ...”中的消息相同。但是,当我去 Project |属性 |和应用程序我能够将目标框架更改为 .NET Framework 4.6.1,然后它安装得很好。

        【讨论】:

          【解决方案6】:

          在我的例子中,我试图将我们自己制作的包插入到我们自己的 Nuget 提要中,因此我可以访问该项目。 这就是我为解决问题所做的。在项目解决方案窗口中,单击 packages.config。在属性窗口中,将构建操作更改为“内容”。再次将其推送到我们的提要后,我能够将其安装到主项目中。

          【讨论】:

            【解决方案7】:

            我有类似的问题,我通过删除 packages.config(如果不想删除,可以编辑文件)文件解决了这个问题,然后确保我使用的两个包都是使用相同的 .net 版本构建的作为我使用它的项目(对我来说,包是使用 4.6 构建的,而我的控制台项目针对的是早期版本的 .net)。

            【讨论】:

              【解决方案8】:

              更新 Application .NET 目标框架可以解决问题。就我而言,我正在安装 EmguCv 4.2 包。尝试使用 4.5.1 .NET 目标框架构建时出现同样的错误。将 .NET 目标框架更新到 4.6.2 后,我可以成功安装 EmguCv 4.2 Nuget 包。

              【讨论】:

                【解决方案9】:

                尝试安装 .net SDK here,然后右键单击您的解决方案/项目并“恢复 nuget 包”

                【讨论】:

                  【解决方案10】:

                  我在我们自己的私有 nuget 服务器上创建和托管的包遇到了这个问题,但即使在这里尝试了其他建议(例如确保包支持正确的 .net 框架版本)后,它仍然无法正常工作.

                  我让其他人尝试,他们设法毫无问题地添加它。 今天,在 VS 的选项中搞乱,我找到了一个解决方法: 选项 -> NuGet 包管理器 -> 常规 -> 清除所有 NuGet 缓存

                  How to clear nuget cache in visual studio

                  希望这可以帮助像我一样困惑的人:D

                  【讨论】:

                    猜你喜欢
                    • 2016-04-05
                    • 2021-03-05
                    • 1970-01-01
                    • 2019-02-15
                    • 1970-01-01
                    • 2020-12-20
                    • 2017-11-05
                    • 2016-07-11
                    • 1970-01-01
                    相关资源
                    最近更新 更多