Azure 中 .NET Core 运行 中的 Azure WebJob

Azure WebJob in .NET Core running in Azure

这里没有找到类似的所以...

案例是使用 .net core 2.0 在 azure 上创建一个简单的 webjob 我下载了很多示例,所有这些示例在我的本地 PC 上都能完美运行,但是当我在 azure 上下载它们时却不行...

我在这里举的例子之一 - webjob sample

正如我所说,它在本地完美运行,但在 azure 上它在初始化期间抛出错误:

[06/12/2018 14:54:54 > c9dee2: SYS INFO] Status changed to Initializing
[06/12/2018 14:54:54 > c9dee2: SYS INFO] Run script 'run.bat' with script host - 'WindowsScriptHost'
[06/12/2018 14:54:54 > c9dee2: SYS INFO] Status changed to Running
[06/12/2018 14:54:54 > c9dee2: INFO] 
[06/12/2018 14:54:54 > c9dee2: INFO] D:\local\Temp\jobs\triggered\ccc45\hgqichl3.x1l>dotnet webjobs-core-example.dll 
[06/12/2018 14:54:54 > c9dee2: ERR ] Error:
[06/12/2018 14:54:54 > c9dee2: ERR ]   An assembly specified in the application dependencies manifest (webjobs-core-example.deps.json) was not found:
[06/12/2018 14:54:54 > c9dee2: ERR ]     package: 'Microsoft.Azure.WebJobs.Core', version: '3.0.0-beta1-10871'
[06/12/2018 14:54:54 > c9dee2: ERR ]     path: 'lib/netstandard2.0/WebJobs.dll'
[06/12/2018 14:54:54 > c9dee2: ERR ] 
[06/12/2018 14:54:54 > c9dee2: SYS INFO] Status changed to Failed
[06/12/2018 14:54:54 > c9dee2: SYS ERR ] Job failed due to exit code -2147450740

一个错误说它找不到包 'Microsoft.Azure.WebJobs.Core',这是唯一支持 .net 核心的包,它处于预发布状态(最新的稳定 v2 - 不支持核心)。但是我没有找到 Azure nuget 打包程序不支持预发布包的信息...

我也尝试更新到最新的 beta5 - 结果相同。 我尝试的另一点是在我的本地机器上复制预发布包并将它们添加为引用以强制构建过程将这些依赖项放在主库附近。这行得通,但是 Azure 抛出了一个又一个错误,它无法解决其他一些依赖关系,我放弃了。

有没有办法让 .net 核心应用程序与 azure webjobs SDK 一起工作? 任何建议表示赞赏。 谢谢!

您似乎缺少 webjobs 参考。因此,您可以在 .csproj 文件中使用 <PropertyGroup> 强制将 NuGet 程序集复制到内置输出 :

<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>

使用上面的代码后,它会显示所有的dll如下,我发布到azure,效果很好。

详情请参考