【问题标题】:NuGet Packages are missing缺少 NuGet 包
【发布时间】:2015-11-22 03:14:07
【问题描述】:

我搜索了这个问题,但没有一个解决方案有效。我安装了 Visual Studio Professional 2015 并且正在使用 TFS。我的 NuGet 版本是 3.1.6。这个问题只发生在我的 C# Web API/MVC 项目中。

我收到以下错误:

此项目引用了此项目中缺少的 NuGet 包 计算机。使用 NuGet 包还原下载它们。更多 信息,请参阅http://go.microsoft.com/fwlink/?LinkID=322105。这 丢失的文件是 ..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props

  1. 我的解决方案中没有 .nuget 文件夹。
  2. 我的解决方案中有一个 packages 文件夹,当我删除它时,NuGet 似乎确实重建了依赖项,但项目仍然存在上述错误。
  3. 我尝试从 TFS 中删除该项目,但没有修复它。
  4. 除上述错误外,项目中的所有引用都有黄色警告标志,并表示它们丢失。
  5. 当我检查项目的 NuGet 包管理器时,“缺失”的所有内容旁边都有一个绿色勾号,包括 Microsoft.Net.Compilers。
  6. 我尝试添加一个新的 Web API/MVC 项目,但它遇到了类似的问题,大多数引用(例如 Owin)都“丢失”并带有黄色警告标志。

【问题讨论】:

  • 投票结束此问题,因为新用户发布的低质量答案数量过多。

标签: visual-studio nuget visual-studio-2015


【解决方案1】:

我通过从.csproj 文件中删除此代码解决了我的问题:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
  <PropertyGroup>
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
  </PropertyGroup>
  <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>

【讨论】:

  • 接受的答案不起作用,因为我在多个单独的解决方案中引用了该项目。这是唯一的解决办法。注释掉它,它就像一个魅力。
  • 我可能是错的,但我相信这是“用锤子打苍蝇”。如果由于某种原因,发布的位置丢失了任何其他必需的 nuget 包,它将 not 错误,给您一个误报(即部署成功,但系统失败)。不是粉丝,但我不会反对它,因为我仍然不熟悉 nuget 的某些方面。
  • 这也对我有用。奇怪的是错误消息被硬编码在 proj 文件本身中......
  • 确认此问题在 VS 2017 中仍然存在。我将一个项目从 Visual Studio 2015 迁移到 2017,并在 2017 年首次编译时收到此错误消息。这修复了该错误。
  • 为什么要删除功能、冒着破坏项目的风险等等?正如@HeyZiko 指出的那样,这可能会导致以后出现问题。我可以做错误状态“启用包还原”的操作。在此页面的某处查看我的答案...
【解决方案2】:

我今天遇到了同样的错误(缺少完全相同的包裹)。我还创建了一个 MVC + Web API 项目。

发生这种情况是因为我将应用程序文件(包括 .csproj)文件移动到了另一个位置。我手动更新了 .sln 文件,但所有包依赖项现在(Visual Studio 2015)都存储在 .csproj 文件中。

编辑 .csproj 文件并更正解决方案文件夹(包含 packages 文件夹)的相对路径为我解决了问题。

【讨论】:

  • 在移动后将 Microsoft.Net.Compilers... 文件夹从旧包文件夹复制到新包位置(如果丢失)可能是最后一步。
  • 我刚刚从我的计算机中删除了那个 ONE 包,它工作正常。
  • 在将项目物理移动到 Visual Studio 解决方案中的其他位置时,我也遇到了错误。此页面上的解决方案均无效,因此我制作了项目的副本(在文件系统上)并完全删除了对 VS 中原始项目的所有引用。然后,我重新创建了项目并将零碎的内容复制到其中(从我制作的副本中)。费力,但它奏效了。
  • 在将项目从一个位置移动到另一个位置后,我也遇到了同样的问题。修复“.csproj”文件中包的路径解决了这个问题。
  • @MiłoszWieczorek 我尝试在包管理器控制台中运行该命令,但没有解决问题。它重新加载了所有包,但仍然找不到引用。
【解决方案3】:

注意 - 这会更新整个解决方案的包,而不仅仅是项目。

如果您在构建解决方案时还有一个缺失的 nuget 包出现错误,请使用工具 > Nuget 包管理器 > 包管理器控制台中的 Nuget 命令控制台执行以下命令。它将重新安装您当前的所有软件包。

Update-Package –reinstall

更新:

您可以将特定的项目名称作为参数传递。

Update-Package –reinstall -ProjectName SampleApp

【讨论】:

  • 这对我有用。在一个系统上通过 git 推送更改并将它们拉到另一个系统上之后,我弹出了错误。也许我的 .gitignore 没有为 nuget 包正确配置。
  • 当心......这会更新整个解决方案的包,而不仅仅是项目。
  • 这对我有用。 NuGet 一直抱怨缺少包,但 Visual Studio 不会自动解决。完全运行需要几分钟,但这个命令解决了我的问题。
  • 您可以添加 -ProjectName 参数使其仅适用于特定项目,而不是整个解决方案。
  • VS2017 在这个过程中崩溃了,它破坏了一切
【解决方案4】:

我收到了这个令人沮丧的消息。最终对我有用的是删除 /packages 中的所有文件和文件夹,并让 VS 在下一次构建时重新获取所有内容。

【讨论】:

  • 我右键单击解决方案和Restore Nuget Packages
  • 当我右键单击解决方案时,我没有任何还原 Nuget 包..我正在使用 VS 2013..
  • 还必须确保它恢复到正确的包。使用 note/Edit *.csproj 检查 .csproj 以获取软件包文件夹的位置
【解决方案5】:

这样解决了我的错误: 在 Visual Studio 2015+ 解决方案资源管理器中打开 .csproj 文件进行更新:

右键项目名称->卸载项目

右键项目名称->编辑.csproj

删除以下行:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
    <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
    <Error Condition="!Exists('packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
    <Error Condition="!Exists('packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
  </Target>

右键项目名称->重新加载项目

最终构建您的解决方案。

【讨论】:

  • 手动修复 csproj 中的路径后,我删除了 EnsureNuGetPackageBuildImports 部分,它运行良好。谢谢
  • 为我工作。有点矫枉过正,但其他选项并没有解决问题。
  • 这些条件是检查包是否存在于两个地方。 (有点奇怪,一个就够了)。删除它们的更好选择是修复指向实际包文件夹的路径。是相对的。您的包文件夹可能是 ..\..\packages..\..\..\packages 或类似的。
【解决方案6】:

提比留是正确的。当文件被移动并导致此问题时,我不得不编辑我的 .csproj 文件

 <Import Project="..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />

我在文件顶部和底部进行了更改

<Error Condition="!Exists('..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />

【讨论】:

  • 最后对我有用的是只编辑文件末尾的行,而不是顶部的行
【解决方案7】:

我通过从 .csproj 文件中删除以下代码解决了这个问题

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
  <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\..\Assemblies\NuGet\SpecFlow.Plus.Excel.1.4.2\build\SpecFlow.Plus.Excel.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\Assemblies\NuGet\SpecFlow.Plus.Excel.1.4.2\build\SpecFlow.Plus.Excel.targets'))" />

【讨论】:

  • 但是为什么这些错在首位呢? Visual Studio 中的错误?
【解决方案8】:

两个答案的组合对我有用。首先我修改了 .csproj 文件,去掉了对 1.0.0 版本的引用

< Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild" >

  ----Error---

< /Target>

然后做了

Update-Package -Reinstall

从 并且它起作用了。

【讨论】:

    【解决方案9】:

    我通过以下步骤解决了同样的问题

    1. 从 package.config 文件中删除了包 &lt;package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="2.0.1" targetFramework="net46" /&gt;
    2. 编辑 .csproj 项目文件并删除以下设置。 <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">     <PropertyGroup>       <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>     </PropertyGroup>     <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />   </Target>

      1. 转到包管理器控制台并运行命令Update-Package –reinstall

    第 2 点和第 3 点是由其他用户提供的,我感谢这些用户。第 1 点,从 package.config 文件中删除 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 更为重要。此外,在运行第 3 点中提到的命令后,问题解决了。删除了所有不需要的包并更新了所需的包参考。

    希望这对某人有所帮助。

    【讨论】:

      【解决方案10】:

      对我来说,问题是当我将解决方案复制到一个新文件夹并打开它时,它缺少 Nuget 文件夹,如下所示。我复制了这个文件夹,一切正常。注意:同一个文件夹在我们的源代码管理中,但不在此解决方案项目中,它位于一个目录中。

      【讨论】:

        【解决方案11】:

        要在这里扩展一些答案,是的,您可以从 .csproj 文件中删除以下块:

        &lt;Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"&gt;

        这解决了这个问题,但是在我的情况下,我注意到我对不同版本的 .NET.Compilers 和 .CodeDom.Providers 有额外的引用:

        <Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.0.0
        <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\
        
        <Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.2.0.1
        <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\
        

        当我的 packages.config 仅引用以下内容时:

        <package id="Microsoft.Net.Compilers" version="2.0.1"
        <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.3"
        

        从 .csproj 文件中删除 1.0.0 项解决了该问题。

        【讨论】:

        • 这也适用于当 3.5.0 更新到 3.7.0 时出现恶意错误情况。
        【解决方案12】:

        只需启用 NuGet 包还原。 右键单击您的解决方案 > 选择“启用 NuGet 包还原”。

        这将使用 NuGet.Config 文件创建 .nuget 文件夹并解决我的问题。

        【讨论】:

        • 谢谢!!我也遇到过类似的情况,并且“启用 NuGet 包还原”起作用了。
        • 它对我来说没有用,它说“所有软件包都已安装,没有什么可恢复的。”
        【解决方案13】:

        我正在使用 VS2012 并面临同样的错误。我从 .csproj 文件中删除了以下 Target 标记,它开始编译,没有任何错误。

        <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
          -- Error messages within Target Tag
        </Target>
        

        【讨论】:

          【解决方案14】:

          对于在这里遇到我遇到的问题的任何人(一些但不是所有包都在构建服务器上恢复),我的最后一个难题是在我的解决方案的根目录中添加一个 NuGet.config,兄弟姐妹David Ebbo 在这里解释的 .SLN 文件:http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html

          从 Ebbo 的博文中,对我来说文件内容很简单

          <?xml version="1.0" encoding="utf-8"?>
          <configuration>
            <packageSources>
              <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
            </packageSources>
          </configuration>
          

          更新:

          v3 的 NuGet API URL 已更改(截至 2016 年 9 月)。来自https://www.nuget.org/

          <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
          

          【讨论】:

            【解决方案15】:

            错误信息完全正确。我尝试了所有技巧,但都没有奏效。该项目(简单的 MVC Web 应用程序测试)从 Windows 8.1 VS 2015 社区移动到我在 Windows 10 上的新测试箱。应用了 VS 2015 的所有最新更新。 我什至无法安装任何更新版本的编译器包。

            Loop:
            <LOOP>This seems to be a Ground Hog Day phenomena.</LOOP>
            GoTo Loop
            

            我终于将旧项目中的 Microsoft.Net.Compilers.1.0.0 复制到了新项目中,并且成功了。 然后我可以开始将其他软件包更新到较新的版本。 对我来说,这看起来像是一个 nuget 项目升级过程错误。

            注意:原始项目是在 VS 2015 中创建的,没有任何遗留的 nuget 方法。

            【讨论】:

              【解决方案16】:

              适用于我的解决方案 - Visual Studio 2015 Enterprice,项目 .NET 4.6.1

              1. 升级到更新 3
              2. 安装 Web 开发者工具

              【讨论】:

                【解决方案17】:

                对我来说,包在正确的路径下,但包文件夹中的构建文件夹不在。我只是删除了它说丢失的所有包并重建了解决方案,它成功地创建了构建文件夹和 .props 文件。所以错误消息是正确的,它告诉我有什么事情是遗漏的。

                【讨论】:

                  【解决方案18】:

                  从 Git 部署时,我在 Azure 中构建失败时遇到此问题。

                  原来我的 .gitignore 将 build 文件夹从 ..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props 中排除。

                  build 文件夹(强制)提交给 Git 后,问题就解决了。

                  【讨论】:

                    【解决方案19】:

                    对我来说,我的 gitignore 文件忽略了我的包文件夹。以下 gitignore 行导致了问题 -

                    **/packages/*
                    

                    删除并恢复了我的包文件夹。希望这对其他人有帮助。

                    【讨论】:

                      【解决方案20】:

                      我找不到任何解决方案,因此我将 nuget.exe 和 powershell 脚本的副本添加到名为 prebuild.ps1 的解决方案的根目录中,其中包含以下内容。

                      $nugetexe = 'nuget.exe'
                      $args = 'restore SOLUTION_NAME_HERE.sln'
                      Start-Process $nugetexe -ArgumentList $args
                      

                      我在 Pre-Build 脚本路径的构建中调用了这个 powershell 脚本

                      【讨论】:

                        【解决方案21】:

                        当我复制包文件夹以及解决方案文件和项目文件夹时,我的工作正常。我只是没有从以前的地方复制包文件夹。

                        【讨论】:

                          【解决方案22】:

                          您还可以使用建议的错误消息作为提示。方法如下,找到解决方案的管理包,然后单击解决缺失的 nuget 包。

                          就是这样

                          【讨论】:

                            【解决方案23】:

                            评论WebConfig中的编译器选项:

                            <!--<system.codedom>
                            <compilers>
                              <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
                              <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
                            </compilers>
                            </system.codedom>-->
                            

                            更新包配置文件中包的最新版本

                              <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.4" targetFramework="net452" />
                            

                            如果一切正常,则重新构建,无需继续,否则 右键单击项目,单击“卸载项目” 再次右键项目并编辑 .csproj 文件

                            验证 Codedom 的路径,之前的路径中没有 net45,手动添加,保存,加载,重建。它应该可以工作。

                            <Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.4\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.4\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
                            

                            【讨论】:

                              【解决方案24】:

                              正如许多人建议的那样,删除 &lt;Target&gt; 标记可能使其可编译。但是,请注意,当您为测试项目执行此操作时,它会产生副作用。

                              编译时出现与MSTest.TestAdapter nuget 包相关的错误。通过删除 &lt;Target&gt; 标签解决了该问题。尽管它使构建成功,但测试方法变得不可发现。测试资源管理器不会列出该项目中的测试方法,并且运行测试或调试测试也不会正常工作。

                              我在使用Visual Studio 2017.Net framework 4.7 时遇到了这种情况,在其他版本中很可能会发生这种情况

                              【讨论】:

                              • 我在使用 VS2017、.Net4.7 和一个单元测试项目时就遇到了这个问题。该项目被添加到多个解决方案中。自动恢复工作,但到错误的地方。替换为$(SolutionDir) 工作但更新失败。我问过here。你找到解决办法了吗?
                              【解决方案25】:

                              对我来说,问题是 NuGet 无法自动获取/更新包,因为完整的文件路径太大。 通过将我的解决方案移动到我的文档中的文件夹而不是深度嵌套的文件夹来修复

                              然后可以右键单击解决方案并选择“Restore NuGet Packages”(如果您只是构建它并让它为您完成,这可能不是必需的),然后选择“Manage NuGet Packages for Solution”以获取所有软件包都更新到最新版本。

                              这是针对从 Microsoft 网站下载的示例 ASP MVC 应用程序的解决方案。

                              【讨论】:

                                【解决方案26】:

                                对于 DevOps/构建工程师,您可能可以针对受影响的 SLN 或项目(如果您缺少 SLN)修复此运行 nuget restore。我必须为我们所有 UWP 项目的 CI/CD 构建执行此操作。

                                1. 确保 nuget 已安装在 Visual Studio 或独立的构建从属设备上。如果是后者,请确保它在 PATH 中并跳过第 2 步。
                                2. 要么打开 VS Dev CMD 控制台,要么通过已经打开的控制台加载它,您可以按照以下说明进行操作:
                                  VS2015call "%VS140COMNTOOLS%VsDevCmd.bat"

                                  VS2017call "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat"
                                3. call nuget restore MyStuff.SLNcall nuget restore MyStuff.csproj 如果没有 SLN。

                                【讨论】:

                                  【解决方案27】:

                                  不确定这是否会对任何人有所帮助,但是当我从本地计算机删除源代码而没有将解决方案文件保存到 TFS 时,我遇到了这个问题。 (在最初的开发过程中,我在解决方案资源管理器中右键单击并签入项目,但忘记签入解决方案本身。)当我需要再次处理这个问题时,我在 TFS 中只有 .csproj 文件,没有 .sln 文件。所以在VS中我做了一个文件——>源代码控制——>高级——从服务器打开并打开了.csproj文件。从那里我做了一个 Save All,它问我想把 .sln 文件保存在哪里。我将此 .sln 文件与其他文件夹(App_Data、App_Start 等)一起保存到项目目录,而不是顶级目录。我终于发现我需要将 .sln 文件保存到项目文件夹中的一个目录中,以便它与项目文件夹处于同一级别。我所有的路径都解决了,我能够再次构建它。

                                  【讨论】:

                                    【解决方案28】:

                                    我解决了这个错误,实际上我的包文件夹中有不同版本的 MSTest.TestAdapter(1.3.2),并且 .csproj 文件中的引用指向 MSTest.TestAdapter(1.1.0)。我已将所有 MSTest.TestAdapter(1.1.0) 替换为 MSTest.TestAdapter(1.3.2),这解​​决了我的问题。

                                    【讨论】:

                                      【解决方案29】:

                                      我意识到这个问题已经过时了,但是我今天遇到了同样的情况,并想为最近发现此问题的任何人投入 2 美分。我手动移动到解决方案中的子文件夹的 ASP MVC 项目,然后使用 Visual Studio 2017 删除并读取到解决方案中,出现了上述错误。将“lib”和“packages”文件夹移动到与 MVC 项目相同的子文件夹的根目录下解决了我的问题。

                                      【讨论】:

                                        【解决方案30】:

                                        我遇到了同样的问题,原来我引用的项目之一在解决方案目录之外(因此没有共享相同的“/packages”文件夹)。对我有用的解决方案是打开参考项目的解决方案并在那里构建它。项目建成后,错误就消失了。

                                        【讨论】:

                                          猜你喜欢
                                          • 2021-11-01
                                          • 1970-01-01
                                          • 2016-06-25
                                          • 2016-12-29
                                          • 1970-01-01
                                          • 1970-01-01
                                          • 1970-01-01
                                          • 1970-01-01
                                          • 1970-01-01
                                          相关资源
                                          最近更新 更多