【发布时间】:2018-01-01 05:34:05
【问题描述】:
问题的简短版本:
我在包含我的 .NET Core 控制台应用所依赖的程序集时遇到了困难。
最初,来自 NuGet 包的程序集不包含在 bin 文件夹中,即使我可以在 Debug 模式下运行应用程序而没有任何问题。
发现一篇文章建议我应该在myapp.csproj 文件中添加<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>。
这样做会将 NuGet 包的 dll 文件包含在 bin 文件夹中,但是在我将控制台应用程序复制到 Azure 以作为 WebJob 运行后,我收到一条错误消息,告诉我缺少 System.Data.SqlClient。
检查运行 WebJob 的文件夹后,我可以看到 System.Data.SqlClient 的 dll 实际上在文件夹中。我得出结论,这可能是版本号的问题。错误提示如下:
'System.Data.SqlClient',版本:'4.4.2'未找到
当我右键单击此程序集的 dll 文件并检查其版本时,它显示版本 4.6。
知道如何解决这个问题吗?
加长版:
我根据这篇文章构建了这个 .NET Core 2.0 控制台应用程序以作为 WebJob 运行:http://matt-roberts.me/azure-webjobs-in-net-core-2-with-di-and-configuration/
我不得不手动创建这个 WebJobs 应用程序,因为目前 Visual Studio 不提供在 .NET Core 中构建 Azure WebJobs 的方法。
由于当前的限制,我也无法直接从 Visual Studio 发布我的 WebJobs 应用程序。
所以,我尝试将其压缩并通过 Azure 门户上传。这是我意识到 NuGet 程序集不包含在 bin 文件夹中的时候。故事的其余部分已经在“短版”部分中。
感谢您提出解决此问题的建议。
更新:
当我在项目的根文件夹中运行dotnet publish --self-contained -r win32-x64 -c Release 时,出现以下错误:
【问题讨论】:
标签: visual-studio azure console-application azure-webjobs .net-core-2.0