以下命令生成我的函数并将其发布到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.
答案 0 :(得分:1)
您可能对这些输出感到困惑。 (我在Windows上使用c#函数)。
实际上,现在,当我们使用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。