我遇到了dotnet命令行工具版本错误的问题。我刚从https://www.microsoft.com/net/core#windows
卸载并重新安装了最新的.NET核心工具然后我打开了VS2015(更新3),然后点击了帮助 - >关于Microsoft Visual Studio。在那里,我可以看到正确版本的.NET Core工具:
Microsoft .NET Core Tools (Preview 2) 14.1.20624.0
然而,当我去工具 - > NuGet包管理器 - >包管理器控制台并输入
dotnet --version
我明白了:
1.0.0-preview1-002702
这是错误的。这应该是1.0.0-preview2-00300 *(某事)。
这是一个主要问题,因为我的nuget包恢复功能现在都无法正常工作。我得到了很多"包Microsoft.Aspnetcore.Mvc1.0.0不支持框架.NETCoreApp,Version = v1.0"错误类型,如下所示:Package Microsoft.Aspnetcore.Mvc1.0.0 does not support framework .NETCoreApp, Version=v1.0
发生了什么事?如何使程序包管理器控制台识别.NET Core工具是版本预览2,而不是预览1?
答案 0 :(得分:4)
由于.net Core安装的并排方式,多个版本可以在一台机器上共存。因此,dotnet.exe(.NET核心命令行界面)解析的版本可能与最新安装版本的版本不同。
来自https://docs.microsoft.com/de-de/dotnet/articles/core/tools/index#driver
首先,驱动程序将确定您的工具版本 想。您可以使用以下命令在
global.json
文件中指定版本 sdkVersion属性。如果没有,驱动程序会找到 安装在磁盘上并将使用的最新版本的工具 那个版本。确定版本后,它将执行 命令。
请检查项目文件夹中是否存在global.json
,可以将sdkVersion明确定义为1.0.0-preview1-002702
并将其更改为1.0.0-preview2-003121
。
答案 1 :(得分:1)
我刚刚解决了从1.0.0到1.1.0的版本问题
您的project.json需要更改为新模板,例如
{
"version": "1.0.0-*",
"buildOptions": {
"debugType": "portable",
"emitEntryPoint": true
},
"dependencies": {},
"frameworks": {
"netcoreapp1.1": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.1.0"
},
"Microsoft.ApplicationInsights.AspNetCore": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.1",
"Microsoft.AspNetCore.Routing": "1.0.1",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0"
},
"imports": "dnxcore50"
}
}
}
我是从https://blogs.msdn.microsoft.com/dotnet/2016/11/16/announcing-net-core-1-1/
得到的只要安装了核心1.1 SDK,在运行“dotnet.exe”命令时,它应该选择要使用的正确SDK。有趣的是,“dotnet.exe”命令似乎是“全局的”,因为它适用于多个版本。每个版本没有一个dotnet.exe。 SDK安装布局显示了这一点,dotnet.exe位于
C:\ Program Files \ dotnet
并且SDK本身位于
C:\ Program Files \ dotnet \ sdk \ 1.0.0-preview2-1-003177 C:\ Program Files \ dotnet \ sdk \ 1.0.0-preview2-003131
更改project.json之后,您需要执行
dotnet restore
然后你可以做
dotnet build
dotnet run
答案 2 :(得分:0)
升级到最新的 .NET Core SDK 1.0.3 ,但dotnet.exe
仍在寻找project.json
。您似乎需要删除dotnet
SDK的所有预览版本,因为它们优先于版本号。
从“添加/删除程序”中卸载所有 SDK预览( 1.0.0-preview2 - )后,dotnet.exe
找到了最新的1.0.3安装SDK。
关键是要运行dotnet --info
并验证产品信息=>版本属性。如果它说预览,它没有使用最新的.NET Core SDK版本,那么在运行dotnet build
或dotnet run
时会出现错误:
在当前目录中找不到'project.json'