Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio dotnet restore与Visual Studio 2017的包不同_Visual Studio_.net Core_Nuget Package - Fatal编程技术网

Visual studio dotnet restore与Visual Studio 2017的包不同

Visual studio dotnet restore与Visual Studio 2017的包不同,visual-studio,.net-core,nuget-package,Visual Studio,.net Core,Nuget Package,我一直在寻找这个问题的答案,但到目前为止还没有找到一个与我的情况相同的答案 我有一个DotNet Core 1.1.4项目,当我在Visual Studio 2017中打开.sln项目文件时,它会在我打开该文件后立即取出正确的包。但是对于命令行,如果我运行commmand dotnet restore --force 它不是拆下包裹。奇怪的是,如果我用 dotnet restore --packages .\packages\ 它将拉下几个,但似乎是错误的包。例如,在此解决方案中的一个.cs

我一直在寻找这个问题的答案,但到目前为止还没有找到一个与我的情况相同的答案

我有一个DotNet Core 1.1.4项目,当我在Visual Studio 2017中打开.sln项目文件时,它会在我打开该文件后立即取出正确的包。但是对于命令行,如果我运行commmand

dotnet restore --force
它不是拆下包裹。奇怪的是,如果我用

dotnet restore --packages .\packages\
它将拉下几个,但似乎是错误的包。例如,在此解决方案中的一个.csproj文件中,有一个对System.Interactive.Async 3.0.3的引用,但下载的包是3.0.0。即使我运行这个

dotnet restore .\folder\project.csproj
当我去构建它时,它不会把它后来抱怨丢失的这个包拉下来

这种行为非常令人困惑,因为据我所知,dotnet restore应该执行Visual Studio 2017在恢复包时所做的相同工作。项目文件夹确实有一个packages.config文件,但我从以前的搜索中了解到,dotnet restore会忽略这些文件。我已经验证了这个引用在.csproj文件和app.config文件中,不确定这是否重要

如果删除.\packages\文件夹的内容并执行dotnet restore.\folder\project.csproj命令,则在.\packages\文件夹中不会显示任何内容,即使在Visual Studio 2017中打开它时,它会填充在该文件夹中

为什么这种行为不同?我需要做什么才能让dotnetrestore命令将正确的包恢复到正确的位置

如果有帮助,下面是我的dotnet-info命令的结果:

.NET命令行工具1.1.5

产品信息: 版本:1.1.5 提交SHA-1哈希:2b517ddd29

运行时环境: 操作系统名称:Windows 操作系统版本:6.1.7601操作系统 平台:Windows RID:win7-x64 基本路径:C:\Program Files\dotnet\sdk\1.1.5


找到了答案。我从这里下载了NuGet.exe:

使用命令

nuget restore
在dotnet restore未安装的位置安装正确的软件包。我不知道为什么,但它确实解决了我的问题