发布Azure功能时以发布模式构建吗?

时间:2018-08-28 05:58:03

标签: azure azure-functions

以下命令生成我的函数并将其发布到Azure。但是它始终以调试模式构建-如何使其切换到发布模式?

func azure functionapp publish NAME_OF_MY_FUNCIONS_RESOURCE

更新:当我比较Debug,Release和publish文件夹中dll的文件大小时,publish文件夹中的dll与Debug文件夹中的dll匹配,而不与Release文件夹中的dll匹配。

# Paths that I am comparing.
FunctionApps\bin\Debug\netstandard2.0\bin
FunctionApps\bin\Release\netstandard2.0\bin
FunctionApps\bin\publish\bin     <-- Matches Debug\netstandard2.0\bin.

2 个答案:

答案 0 :(得分:1)

您可能对这些输出感到困惑。 (我在Windows上使用c#函数)。

enter image description here

实际上,现在,当我们使用func azure functionapp publish进行发布时,将同时生成调试和发布内容。并且此命令使用publish文件夹中的文件。

要证明这一点,请检查“调试”和“发布”文件夹之间的区别。 local.settings.json被复制到前者,但不会复制到后者,因为该文件仅在本地dev中有用。发布功能后,该文件将不会上传。因此,我认为发布确实可以在发布文件夹中正常工作。

更新

如果仅使用函数cli,则不存在发布文件夹,您可能将其与VSCode / VS生成的发布文件夹或仅手动dotnet publish --configuration Release进行比较。

您的假设应该是正确的。即使要发布的代码放在bin\publish文件夹中,它还是在调试模式下构建的。检查了PDB文件functionappname.pbd,其大小与Debug文件夹中的文件相同(大于Release文件夹中的文件)。

找到您打开的issue,让我们等待Aure团队的答复。

答案 1 :(得分:1)

我在GitHub上问了同样的问题,并在那里得到了答案。

func azure functionapp publish NAME_OF_MY_FUNCIONS_RESOURCE \
  --dotnet-cli-params -- "--configuration Release"

有关GitHub的更多详细信息:https://github.com/Azure/azure-functions-core-tools/issues/670