【问题标题】:.NET Core 3.1 Transitive Reference Issue With Azure Function Class LibraryAzure 函数类库的 .NET Core 3.1 传递参考问题
【发布时间】:2020-05-01 18:47:18
【问题描述】:

我在 Visual Studio 2019 16.4.3 中有一个包含 5 个 .NET Core 3.1 项目的解决方案,具有以下结构和参考:

MyProject.Core(类库)

  • 对 MyProject.SharedKernel 的项目引用

MyProject.Infrastructure(类库)

  • 对 MyProject.Core 的项目引用

MyProject.SharedKernel(类库)

  • EnsureThat NuGet 包参考

MyProject.Function(Azure Function v3 类库)

  • 对 MyProject.Core 的项目引用
  • 对 MyProject.SharedKernel 的项目引用
  • 对 MyProject.Infrastructure 的项目参考

MyProject.Web (ASP.NET Core 3.1)

  • 对 MyProject.Core 的项目引用
  • 对 MyProject.SharedKernel 的项目引用
  • 对 MyProject.Infrastructure 的项目参考

MyProject.Web 我可以毫无问题地使用 EnsureThat 库,因为如果引用 MyProject.SharedKernel 又引用了 EnsureThat NuGet 包。出于某种原因,我无法在 MyProject.Function 项目中执行相同的操作,即使它具有对 MyProject.SharedKernel

Azure 函数类库中是否存在阻止传递引用正常工作的问题?我不希望直接在 MyProject.Function 项目中安装 EnsureThat NuGet 包。

【问题讨论】:

    标签: c# .net-core azure-functions


    【解决方案1】:

    使用 VS 2019 的 .net 核心中的引用似乎有点不稳定。在遇到此问题时,Microsoft 发布了 EF Core 3.1.1。我决定使用 nuget 更新我引用 EF Core 3.1.1 的 EF Core 3.1.0 包。当我这样做时,我开始遇到关于缺少参考的各种错误。在这一点上,我认为本地出了点问题,所以我将我的代码检查到 Azure Dev Ops 中,看看我们的门控构建是否会失败。它没!此时,我从本地计算机中删除了所有代码,并从 Azure Dev Ops 获取了最新代码。当我尝试构建它时抱怨缺少文件“project.assets.json”并告诉我执行“dotnet restore”。我打开了包管理器并做到了。一旦完成而没有问题,我的所有引用都已修复,包括我的 azure 函数的传递引用问题!

    【讨论】:

      【解决方案2】:

      不幸的是,你想要的都是不可能的。这与 VS 2019 无关,原因是该功能尚未实现。

      Azure 函数现在无法引用类库。但是你可以引用你的类库的 dll 文件,这意味着你可以在你的 SharedKernel 类库中进行输出并在你的 azure 函数中获取输出。

      首先构建SharedKernel类库,然后引用this的dll。

      在你的天蓝色函数中:

      顺便说一句,你只能使用输出,使用Ensure That包仍然是不可能的。您需要将其安装在您的 azure 函数中。

      希望对你有帮助。

      【讨论】:

      • 在下面查看我的答案。一旦我做了它所说的一切都按我的预期工作。
      • @KenBrannigan 我现在在外面。我回来后会测试它。恭喜解决了这个问题,谢谢分享!
      猜你喜欢
      • 1970-01-01
      • 2018-06-26
      • 2021-09-11
      • 2020-05-14
      • 2020-05-02
      • 2020-07-30
      • 1970-01-01
      • 2021-05-16
      • 2017-09-18
      相关资源
      最近更新 更多