【问题标题】:Nugets install in visual studio 2015在 Visual Studio 2015 中安装 Nuget
【发布时间】:2018-09-12 04:46:12
【问题描述】:

我尝试在简单项目中的 Visual Studio 2015 中安装 nuget Microsoft.VisualStudio.QualityTools.UnitTestFramework 并收到此消息:

无法安装包“Microsoft.VisualStudio.QualityTools.UnitTestFramework 10.0.30319.1”。您正在尝试将此包安装到以“.NETFramework,Version=v4.5.2”为目标的项目中,但该包不包含任何与该框架兼容的程序集引用或内容文件。有关详细信息,请联系包作者。

但是,当我尝试在同一个项目中的 Visual Studio 2013 中安装这个包时,这是可行的。

如何在 Visual Studio 2015 中安装此 nuget?

【问题讨论】:

    标签: c# .net visual-studio-2013 visual-studio-2015 nuget


    【解决方案1】:

    时间过去了,但发生在我身上,我发现它与框架版本无关。错误消息的重要文本是:“...但是包不包含任何程序集引用或内容文件...”。

    确实,我的包没有任何可见的 Nuget 内容:它有一个非常规文件夹,其中包含第三方本机库和一个 Install.ps1,它使用 Xcopy 命令添加构建后事件。

    作为一个简单的周转,只需将一个虚拟文件放在包内容文件夹中或 lib 中的任何其他虚拟内容,空文件节点(未尝试过)等。

    2017 年 5 月 29 日编辑

    我看到这个答案对其他人有用,这就是我要详细说明的原因。

    正如我所说,问题是Nuget没有看到包中有任何内容,但它可能有两个原因:

    1. 该包确实没有可见内容,因为它使用脚本等移动内容(就像我的情况一样),然后有必要创建一些虚拟内容作为解决方法。

    2. 必须有内容的包的规范中有一个错误(如 cmets 中的 Evgeni Nabokov 的情况),然后您必须更正规范以将内容落实到位。

    对不起,我的英语不好。

    【讨论】:

    • 是的,我在 bin 文件夹中找到了 dll,而不是在 lib 中。这就是原因。
    • 对于虚拟文件最好使用特殊文件标记(空目录)_._
    • @derigel 是的,它似乎更好,我会试试的。谢谢。
    • 你们如何篡改包裹?我通过“Install-Package”或nuget manager通过控制台在线安装它。你怎么可能改变你安装的包的文件夹?
    • @Dalibor 我不太明白你的问题。在使用“nuget.exe”生成和发布包之前指定安装库和其他内容的文件夹,这些位置与包的安装方法无关。只要你是包的创建者,当然,如果你不是包的创建者,你就不能在安装时“篡改”它。
    【解决方案2】:

    错误消息是说您的框架版本没有 nuget 版本。

    在 VS2013 中你可能在 4.5.0 或 4.0.0 版本的 .Net framework 中创建项目。

    您是否尝试将项目的 .Net 版本更改为 4.5.2 ?

    【讨论】:

    • 我将 Visual Studio 2013 中项目的 .Net 版本更改为 4.5.2,安装成功。我还尝试将 Visual Studio 2015 项目中的 .Net 版本更改为 4.5,但仍然出现此错误。
    【解决方案3】:

    我在 TeamCity 中构建我的 nuget 包、在本地工件中发布它们然后尝试在其他项目中使用这些包时遇到了这个问题。

    为了避免这个问题 - 在 TeamCity 中,BuildSteps ==> NuGet Pack ==> 包参数 ==> 规范文件,您必须选择 .csproj 文件而不是 nuspec 文件并勾选选项“首选项目文件到 .nuspec”

    这样构建的包可以很好地导入,并且不会再受到 VS 的投诉。

    【讨论】:

      【解决方案4】:

      当解决方案的 .NET 标准与相应的 NuGet 包不匹配时,可能会发生这种情况。这是this link的表格:

      ╔════════════════════════════╦═══════════════════════════════════════════════════════════════╗
      ║ .NET Platform              ║ .NET Standard                                                 ║
      ╠════════════════════════════╬═══════╦═══════╦═══════╦═══════╦═══════╦═══════╦═══════╦═══════╣
      ║                            ║  1.0  ║  1.1  ║  1.2  ║  1.3  ║  1.4  ║  1.5  ║  1.6  ║  2.0  ║
      ╠════════════════════════════╬═══════╬═══════╬═══════╬═══════╬═══════╬═══════╬═══════╬═══════╣
      ║ .NET Core                  ║   →   ║   →   ║   →   ║   →   ║   →   ║   →   ║  1.0  ║ vNext ║
      ║ .NET Framework             ║   →   ║  4.5  ║ 4.5.1 ║  4.6  ║ 4.6.1 ║ 4.6.2 ║ vNext ║ 4.6.1 ║
      ║ Xamarin.iOS                ║   →   ║   →   ║   →   ║   →   ║   →   ║   →   ║   →   ║ vNext ║
      ║ Xamarin.Android            ║   →   ║   →   ║   →   ║   →   ║   →   ║   →   ║   →   ║ vNext ║
      ║ Universal Windows Platform ║   →   ║   →   ║   →   ║   →   ║ 10.0  ║   →   ║   →   ║ vNext ║
      ║ Windows                    ║   →   ║  8.0  ║  8.1  ║       ║       ║       ║       ║       ║
      ║ Windows Phone              ║   →   ║   →   ║  8.1  ║       ║       ║       ║       ║       ║
      ║ Windows Phone Silverlight  ║  8.0  ║       ║       ║       ║       ║       ║       ║       ║
      ╚════════════════════════════╩═══════╩═══════╩═══════╩═══════╩═══════╩═══════╩═══════╩═══════╝
      

      您必须同时匹配框架和 .NET 标准版本。我更喜欢 .NET 标准 1.4 和 .NET Framework 4.6.1。通过创建 .NET 标准,Microsoft 正在编纂在所有 .NET 平台上具有一致 API 的要求。似乎一旦您将解决方案迁移到这些级别的兼容性,“不兼容”或在每次更新后再次发现轮子将成为过去的记忆。

      【讨论】:

        【解决方案5】:

        我得到了这个,但它没有任何意义,因为我已经在框架 4.6 项目上使用它没问题,并且错误告诉我它不适用于框架 4.6,我知道这是不真实的。

        最后我通过制作另一个测试项目,从我的旧测试项目中复制 cs 文件等,然后通过 NuGet 安装 UnitTestFramework 来解决它。它工作正常。

        所以发生了一些事情,我猜只有微软才能解决,但重新开始似乎可以解决它。

        【讨论】:

          【解决方案6】:

          似乎创建一个“单元测试项目”而不是“类库”可以解决问题。我与“类库”作斗争没有运气,但是从“单元测试项目”模板中删除该项目并创建一个新项目成为 Microsoft.VisualStudio.QualityTools.UnitTestFramework 版本 10.0.0.0已安装。

          【讨论】:

            【解决方案7】:

            我发现 DynamicInterop.0.8.1.nupkg 的 dll 文件位于文件夹“lib\netstandard1.2”中。我只是将文件夹名称更改为 lib\net40 并且包可以安装(我正在使用 VS2013)。另外:.nupkg 只是一个 .zip 文件,因此任何 zip 工具都可以让您操作其内容。

            【讨论】:

              猜你喜欢
              • 2017-05-29
              • 2018-06-14
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-03-30
              • 1970-01-01
              • 2017-04-02
              相关资源
              最近更新 更多