Pan*_*wat 3 azure visual-studio azure-functions
我在 Visual Studio 2019 中发布 azure 函数时收到以下警告。
无法评估扩展元数据的“Cosmos.CRTCompat.dll”。异常消息:IL 格式错误。无法评估扩展元数据的“Microsoft.Azure.Documents.ServiceInterop.dll”。异常消息:IL 格式错误。
我在一个空白项目中尝试了相同的操作,但出现了相同的警告。
我在 VS Code 中看到同样的问题
C:\Users\pankaj.ra.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator\1.1.5\build\Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.targets(63,5):警告:无法评估“Cosmos.CRTCompat.dll”以获取扩展元数据。异常消息:IL 格式错误。
我的函数项目文件
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<AzureFunctionsVersion>v3</AzureFunctionsVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.EventHubs" Version="4.1.1" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.5" />
</ItemGroup>
<ItemGroup>
<None Update="host.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="local.settings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</None>
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
由于您在空白项目中遇到相同的错误,因此该问题很难解决。我创建了一个空白函数并在本地和天蓝色中运行良好。
首先,清理所有 nuget 缓存(本地和全局)并恢复所有内容。
dotnet nuget locals all --clear
这很可能是因为处理器架构不匹配:loading 64-bit assemblies when you use 32-bit causes this例如。
如果您的应用程序使用 32 位组件,请确保它始终作为 32 位应用程序运行。
确保您没有使用使用不同版本的 .NET Framework 创建的组件。
确保文件映像是有效的托管程序集或模块。
并且,就列表中的第一项而言:
如果应用程序项目的Platform target属性设置为AnyCPU
64-bit,则编译后的应用程序可以在或模式下运行32-bit。当它作为 64 位应用程序运行时,即时 (JIT) 编译器会生成 64 位本机代码。如果应用程序依赖于 32 位托管或非托管组件,则该组件将无法在 64 位模式下加载。要解决此问题,请将项目的Platform target属性设置为x86并重新编译。
欲了解更多详情,您可以参考这篇文章。
| 归档时间: |
|
| 查看次数: |
4561 次 |
| 最近记录: |