【问题标题】:.NET Core 2 Console App Dependencies Issue on AzureAzure 上的 .NET Core 2 控制台应用程序依赖问题
【发布时间】: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.SqlClientdll 实际上在文件夹中。我得出结论,这可能是版本号的问题。错误提示如下:

'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


    【解决方案1】:

    不太确定 WebJobs 规范,但您应该能够使用 dotnet publish --self-contained -r win-x64 -c Release 生成可执行文件及其依赖项。将它们压缩起来,您应该可以部署到 Azure。

    真的没有必要像你那样修改你的csproj

    此外,您可以使用 .NET IL Linker 来缩小生成文件夹的大小。

    参考

    https://docs.microsoft.com/en-us/dotnet/core/deploying/deploy-with-cli#self-contained-deployment-with-third-party-dependencies

    【讨论】:

    • 感谢您的回复,但没有成功。 Getting Project 的目标是运行时“win32-x64”,但没有为“Microsoft.NETCore.App”包解析任何特定于运行时的包。 .NET Core 可能不支持此运行时。错误。将屏幕截图放在原始帖子中。
    • 更新并添加了参考。您需要指定RuntimeIdentifiers
    • 还是不喜欢。在包含TargetFrameworkOutputTypePropertyGroup 中添加了<RuntimeIdentifiers>win10-x64;osx.10.11-x64</RuntimeIdentifiers>。然后在项目的根目录以及csproj文件所在的上一级发出dotnet publish --self-contained -r win32-x64 -c Release,但仍然出现相同的错误。
    • @Sam 如文章所示首先从一个空项目开始。
    • 我写错了win32-x64。如果你检查参考,它应该是win-x64
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 1970-01-01
    • 1970-01-01
    • 2016-11-02
    • 2023-04-10
    • 2018-12-09
    • 1970-01-01
    相关资源
    最近更新 更多