Visual studio dotnet restore与Visual Studio 2017的包不同
我一直在寻找这个问题的答案,但到目前为止还没有找到一个与我的情况相同的答案 我有一个DotNet Core 1.1.4项目,当我在Visual Studio 2017中打开.sln项目文件时,它会在我打开该文件后立即取出正确的包。但是对于命令行,如果我运行commmandVisual 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 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未安装的位置安装正确的软件包。我不知道为什么,但它确实解决了我的问题