[英]How to fix Azure app service unable to load DLL 'libwkhtmltox' or one of its dependencies
Azure 應用服務無法加載 libwkhtmltox。 我在本地機器上工作正常,但在部署到 azure 時,我收到無法加載或其依賴項之一的錯誤。 我在網上搜索並對我的代碼進行了一些更改,我又遇到了這個錯誤。
當我再次推送到 azure 時出現以下錯誤
BadImageFormatException:嘗試加載格式不正確的程序。 (0x8007000B) System.Runtime.InteropServices.NativeLibrary.LoadFromPath(string libraryName, bool throwOnError)
下面是更新后的代碼
var wkHtmlToPdfFileDllName = "libwkhtmltox";
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
wkHtmlToPdfFileDllName += ".so";
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
wkHtmlToPdfFileDllName += ".dylib";
}
else
{
wkHtmlToPdfFileDllName += ".dll";
}
var wkHtmlToPdfPath = Path.Combine(Directory.GetCurrentDirectory(), "wkhtmltox", wkHtmlToPdfFileDllName);
CustomAssemblyLoadContext context = new CustomAssemblyLoadContext();
context.LoadUnmanagedLibrary(wkHtmlToPdfPath);
services.AddSingleton(typeof(IConverter), new SynchronizedConverter(new PdfTools()));
我還將這個添加到.csproj
<ItemGroup>
<None Remove="wkhtmltox\libwkhtmltox.dll" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="wkhtmltox\libwkhtmltox.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</EmbeddedResource>
</ItemGroup>
根據錯誤信息,
要解決此問題,您可以嘗試將平台目標設置為x86 ,如下所示,然后嘗試發布。
有關更多信息,請參閱以下鏈接:
. 無法加載 DLL 'libwkhtmltox' | GitHub
. BadImageFormatException |MSDN
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.