【问题标题】:Azure and C++ DLL filesAzure 和 C++ DLL 文件
【发布时间】:2021-07-26 23:31:25
【问题描述】:

我在 Azure 上有一个 Web 应用程序。它使用 .NET Core 3.1。我在应用程序中使用两个 C++ DLL 文件作为依赖项。第一个 DLL 依赖或使用第二个 DLL。当我在本地 Visual Studio 中运行项目时,没有问题。当我将应用程序部署到 Azure 时,它​​只从第二个 DLL 抱怨,并说“无法加载 dll 或其依赖项之一”。正如我所说,第一个 DLL 通过使用“[DllImport(@"..\Folder\Second.dll")]”在其代码中使用第二个 DLL。我需要做什么或在网络应用程序中添加什么?为什么它在本地运行而不在 Azure 上运行?任何帮助将不胜感激。

【问题讨论】:

  • 可能您没有将 DLL 发布到 Azure...但由于您没有提供任何诊断信息,我们无法为您提供帮助。
  • 按照lan Kemp的建议,先把你的dll文件复制到指定路径。 (通过kudu,打开scm网站)。
  • 如果我的回复有帮助,请采纳为答案(点击回复旁边的标记选项将其从灰色切换为填写。),请参阅meta.stackexchange.com/questions/5234/…

标签: c# c++ azure azure-web-app-service dllimport


【解决方案1】:
  1. 首先确保您的.dll 不需要在本地计算机的注册表中注册。然后您可以将您的.dll 文件直接复制并粘贴到scm 网站中进行测试。如果能成功,那么可以支持。

    这样,我们只需要在.csproj file添加如下代码,发布时包含你的.dll文件即可。

    The specified files are included in the release.

  2. 如果你的.dll需要在电脑注册表中注册,那么我可以明确的告诉你,azure web app不支持,因为它是沙盒环境。

    但您可以通过 azure container webapp 或虚拟机发布您的应用程序。

    相关帖子

    DLLImport does not work on Azure App Service Net. 3.1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-24
    • 2010-09-26
    • 2011-05-16
    • 2010-10-10
    • 2014-04-26
    • 2013-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多