我在.Csx文件中开发了一个Azure函数,该函数调用C#库。
在Azure中创建功能应用程序。
首次部署到Azure是好的。
对已调用Dll进行更改的函数的任何更新都可以在本地模拟器上正常工作。
但是,一旦我将功能应用程序的新版本(使用Web部署或使用Zip + REST API的自定义部署脚本)部署到Azure,我会收到如下消息:
2017-02-10T16:54:29.160 Exception while executing function: Functions.MailSenderFunction. mscorlib:
Exception has been thrown by the target of an invocation. f-MailSenderFunction__-1032464143:
Method not found: 'Void MyCompany.MailSenderFunctionLib.MailSenderFunctionProcessor.Run(MyCompany.MyProject.Common.Models.Mail, MyCompany.MailSenderFunctionLib.LogHandler)'.
即使我在使用Portal,Http Rest API部署之前删除了该功能,它也无济于事。
我需要重新创建一个全新的功能应用资源才能使我的新版本正常工作
如果没有更改代码,如果创建一个全新的空功能应用程序并将功能应用程序部署到Azure,那么我在Azure中获得了一个很好的Azure功能。
但我无法重新部署到同一个Azure功能应用。
我一直在搜索一周。 我担心这是一个Azure bug。
有人有想法吗?
答案 0 :(得分:1)
我一直在使用dll的azure函数一段时间,并解决了使用Team Foundation Service Release版本的问题。
我将发布版本构建为3个步骤
步骤01。使用 power shell azure powershell停止azure功能应用。
步骤02。将您的更改提交到azure function internal git repo
步骤03。使用 powershell azure powershell启动azure功能应用。
您可以从门户网站本身获取powershell cmd。
门户网站 - >你的应用 - >资源浏览器 - >点击" Go"刀片中的链接打开一个新标签 - >应该有一个powershell选项卡,其中包含所有相关的powershell命令。
希望这有帮助