我正在使用https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-first-function-vs-code中的说明来尝试在.Net Core中构建我的第一个Azure Functions项目
我的问题是我无法构建它:
PS C:\work\proj> dotnet build .\proj.csproj
Microsoft (R) Build Engine version 16.1.76+g14b0a930a7 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.
c:\Program Files\dotnet\sdk\2.1.4\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.TargetFrameworkInference.targets(135,5): error : The current .NET SDK does not support targeting .NET Core 2.1. Either target .NET Core 2.0 or lower, or use a version of the .NET SDK that supports .NET Core 2.1. [C:\work\proj\proj.csproj]
Build FAILED.
c:\Program Files\dotnet\sdk\2.1.4\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.TargetFrameworkInference.targets(135,5): error : The current .NET SDK does not support targeting .NET Core 2.1. Either target .NET Core 2.0 or lower, or use a version of the .NET SDK that supports .NET Core 2.1. [C:\work\proj\proj.csproj]
0 Warning(s)
1 Error(s)
Time Elapsed 00:00:00.56
PS C:\work\proj>
这是项目文件:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<AzureFunctionsVersion>v2</AzureFunctionsVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.28" />
</ItemGroup>
<ItemGroup>
<None Update="host.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="local.settings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</None>
</ItemGroup>
</Project>
我从https://dotnet.microsoft.com/download/thank-you/dotnet-sdk-2.1.700-windows-x64-installer安装了最新的.Net Core SDK,所以:
PS C:\> dir 'C:\Program Files\dotnet\sdk\'
Directory: C:\Program Files\dotnet\sdk
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 6/7/2018 6:35 PM 1.0.0-preview2-003131
da---- 2/21/2018 7:57 PM 2.1.4
d----- 10/2/2018 9:04 PM 2.1.403
d----- 12/3/2018 9:46 AM 2.1.500
d----- 1/3/2019 9:06 PM 2.1.502
d----- 5/23/2019 8:18 PM 2.1.507
d----- 6/30/2019 11:27 PM 2.1.700
d----- 6/30/2019 11:27 PM NuGetFallbackFolder
PS C:\>
我不明白为什么该版本选择版本2.1.4。我在做什么错了?
编辑1
我很确定这是相关的。由于某种原因,我有环境变量
MSBuildSdksPath
:
PS C:\> $env:MSBuildSdksPath
c:\Program Files\dotnet\sdk\2.1.4\Sdks
PS C:\>
安装最新的SDK不会对其进行更新。为什么?
当我在本地控制台中删除它时,构建成功。从环境变量中完全删除它是否安全?
编辑2
PS C:\> dotnet --list-sdks
1.0.0-preview2-003131 [C:\Program Files\dotnet\sdk]
2.1.4 [C:\Program Files\dotnet\sdk]
2.1.403 [C:\Program Files\dotnet\sdk]
2.1.500 [C:\Program Files\dotnet\sdk]
2.1.502 [C:\Program Files\dotnet\sdk]
2.1.507 [C:\Program Files\dotnet\sdk]
2.1.700 [C:\Program Files\dotnet\sdk]
PS C:\>
答案 0 :(得分:1)
尝试安装x32和x64。首先我只安装了x64,这是错误的...是我的错误,但也许您也做同样的事情:)
答案 1 :(得分:0)
您正在使用哪个版本的Visual Studio?
我也遇到了这个问题,如果您使用的是Visual Studio 2017,则此版本的.Net Core SDK将无法正常工作,您将需要使用此版本
https://dotnet.microsoft.com/download/thank-you/dotnet-sdk-2.1.507-windows-x64-installer
答案 2 :(得分:0)
我刚刚删除了环境变量MSBuildSdksPath
。
仍然不知道是什么添加了它,为什么以及是否仅通过删除它就能摆脱困境。乐意接受更多信息的答案。
答案 3 :(得分:0)
在清理3.0.0之前的以前的SDK之后,我遇到了这个问题。 我以前安装过x86版本。 我不想再次安装X86和X64版本。 我查看了我的环境变量,并在PATH中看到一个指向dotnet文件夹的条目。我将其更改为C:\ Program Files \ dotnet \,现在我可以了。