在现有解决方案中创建 blank/empty 项目时 Azure 函数失败

Azure functions fail when creating a blank/empty project in an existing solution

我升级到 Visual Studio 2017 15.8.1,但在创建 Azure 函数项目时遇到问题。我正在尝试创建的项目是通过模板向导创建的,只是一个新的 V1 空函数项目。

我收到以下错误,似乎与 .net 核心相关。

NETSDK1004 Assets file '\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. FunctionApp1 C:\Program Files\dotnet\sdk.1.400\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets 198 Run a NuGet package restore to generate this file.

但我的项目文件指出:

  <PropertyGroup>
    <TargetFramework>net461</TargetFramework>
    <AzureFunctionsVersion>v1</AzureFunctionsVersion>
  </PropertyGroup>

明确一点,我确实想要一个 4.6.1 项目,而不是核心项目。

我查看了此问题的其他答案,但 none 解决了它。重新安装包、dotnet restore 等。如果我 select 不同的模板(例如 HTTP 触发器)

,我会收到更多错误

有什么想法吗?

我想我有一个解决方案,那就是重新启动,然后打开 %temp% 并删除该文件夹中的所有临时文件。然后再次重新启动以取得良好的效果,它从一个空白/空项目开始工作,但是一旦我尝试将其包含在另一个解决方案中或移动该项目,它就会失败。

看来我现在可以使用它了,我会把它留在这里以防其他人有同样的情况。

我确实尝试了很多方法来解决,但我相信我的解决方法的关键是重新启动,然后打开 %temp% 并删除该文件夹中的所有临时文件。然后我再次重新启动以取得良好的效果,它从一个空白/空项目开始工作。

好吧,那浪费了我一天的大部分时间。我在 git 中创建了一个名称中包含 space 的存储库。克隆后,我最终得到了回购协议的编码视图 - 即 space 的 %20,它出现在文件夹路径中。由于这只是一些演示工作,所以我将其保留原样,而不是将其整理成一个干净的名称space。

事实证明,如果您的路径中有 %20 或其他编码值,您将收到 NETSDK1004 错误。我希望这个答案可以节省其他人一些时间!