无法从 Visual Studio 2017 调试和发布 Azure 函数

Posted

技术标签:

【中文标题】无法从 Visual Studio 2017 调试和发布 Azure 函数【英文标题】:Unable to debug and publish Azure Function from Visual Studio 2017 【发布时间】:2018-07-30 13:21:26 【问题描述】:

我曾经使用 Visual Studio 2017 调试和发布我的 Azure Function Project。

然而突然间一切都停止了。

当我尝试调试项目时,我收到错误“无法直接启动具有类库输出类型的项目。”。 当我尝试发布项目时,发布到 Azure 的选项消失了,我只能发布到一个文件夹。 尝试创建配置文件时,我也只能选择文件夹配置文件类型。

当 .csproj 文件中的“Project Sdk”属性错误时,我曾在 Web 项目中看到过类似的行为,但我使用新创建的 Azure Function Project 对其进行了双重检查,结果相同。 当我创建一个新的函数项目时,我可以像以前一样发布到 Azure。

我正在使用以下软件包:

连同 .NET Framework 4.7.1。

我还从包含业务逻辑的解决方案中引用了一些其他项目。

我最终创建了一个新的函数项目,复制了那里的所有内容,现在它又按预期工作了。

有谁知道这是怎么发生的以及如何在不从头开始创建所有内容的情况下解决它?

【问题讨论】:

有机会比较两个csproj 文件吗? 工作和不工作的 csproj 文件完全相同。这让我很困惑。 【参考方案1】:

这可能是因为错误的项目设置为启动项目。在解决方案资源管理器中,您会注意到启动项目以粗体显示。如果不是正确的项目,请尝试右键单击正确的项目,然后单击设置为启动项目。

帮我解决了。

【讨论】:

【参考方案2】:

在我的情况下,我能够通过确保引用 Azure Functions 的 NuGet 包来修复它:

<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.14" />    

【讨论】:

【参考方案3】:

我遇到了同样的问题。我进入了 Visual Studio 安装程序并(重新?)安装了“Azure 开发”工作负载。那为我修好了。

【讨论】:

【参考方案4】:

我也遇到了同样的事情。我向现有解决方案添加了一个新的 Azure Function 项目,但它不允许我对其进行调试。我添加了一个额外的 Azure Function 项目来测试它,它运行良好。比较了 .csproj 文件,它们都是正确的。

我重新启动了 Visual Studio,并且能够调试两个 Function 项目,但我不知道这是否总能解决问题。

【讨论】:

只需重新启动 Visual Studio 对我有用 谢谢!添加第二个 Function App 项目对我有用。我不需要重新启动 VS。【参考方案5】:

用于 Visual Studio 的 Azure Functions 工具并不总是像人们希望的那样稳定 - 但每个版本都会变得更好。

我在更新到 Visual Studio 2017 v15.3 之后遇到了类似的问题,然后在更新到 v15.5 时又遇到了类似的问题。更新或重新安装 Azure Functions 插件后,这两个问题都消失了。

但是,如果您已经打开(并保存)了具有非工作 VS 设置的解决方案,那么 VS 有时似乎会“破坏”该项目。

您可以查看您的非工作项目以查看您的 .csproj 文件是否包含:

&lt;ProjectGuid&gt;0EC16A67-C60A-4950-A533-07D8783C88B0&lt;/ProjectGuid&gt;

...这是 Azure Functions 项目的指南。 如果您的 ProjectGuid 不同,那么您可以尝试将其更改为上述内容,它应该(可能?)工作。

【讨论】:

我不确定我是否遗漏了什么,但 .csproj 文件都不包含 ProjectGuid-Element。解决方案文件 (.sln) 包含 guid,但我没有特别找到这个。

以上是关于无法从 Visual Studio 2017 调试和发布 Azure 函数的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Visual Studio 2017 中调试 Azure 计时器功能

从 Visual Studio 调试独立的 exe

无法再从 Visual Studio 为 .NET 项目运行 localhost 调试站点

从 Visual Studio 2017 中调试 .Net Core 控制台应用程序

无法从特权运行的 Visual Studio 2010 拖放到调试的应用程序运行

无法从 Visual Studio 2019 16.6.2 调试 Blazor 托管的 webassembly 3.2.0