使用aspnetcore 3执行Azure函数v2时出现异常-系统找不到指定的文件,System.Private.CoreLib

aoyhnmkz  于 2023-08-07  发布在  其他
关注(0)|答案(4)|浏览(147)

我正在使用.net Core 3和Azure函数版本2(Visual Studio 2019和.net framework 4.8)。执行以下函数时,发生异常:
System.Private.CoreLib:执行函数时出现异常:
Microsoft.Extensions.Configuration.AzureAppConfiguration:未能加载文件或程序集“website,Version=2.1.0.0,Culture=neutral,PublicKeyToken= cc7b13ffcd2ddd51”。系统找不到指定的文件。
System.Private.CoreLib:无法加载指定的文件。
请帮帮我

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
    <AzureFunctionsVersion>v2</AzureFunctionsVersion>
    <DependsOnNETStandard>true</DependsOnNETStandard>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.Azure.ServiceBus" Version="4.1.1" />
    <PackageReference Include="Microsoft.ApplicationInsights" Version="2.11.0" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.ServiceBus" Version="3.2.0" />
    <PackageReference Include="Microsoft.IdentityModel" Version="7.0.0" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.29" />
    <PackageReference Include="NETStandard.Library" Version="2.0.3" />
    <PackageReference Include="System.Text.Json" Version="4.6.0" />
  </ItemGroup>
  <ItemGroup>
    <None Include="******.cs" />
    <None Include="******.cs" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\************" />
    <ProjectReference Include="..\************" />
  </ItemGroup>
  <ItemGroup>
    <None Update="*******/function.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="*******/function.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="host.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="local.settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
  </ItemGroup>
</Project>

字符串

1cosmwyk

1cosmwyk1#

这里是否存在任何程序集依赖项?

<ItemGroup>
    <None Include="******.cs" />
    <None Include="******.cs" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\************" />
    <ProjectReference Include="..\************" />
  </ItemGroup>

字符串
这是由组合相依性所造成的问题,但您提供的零件并不恩怨。问题应该出在后面省略的部分。

vbkedwbf

vbkedwbf2#

Microsoft.Extensions.Configuration.AzureAppConfiguration
在您的. csproj中缺少。你可以在Nuget包中找到它
Microsoft.Extensions.Configuration
然后安装到你的项目中,这样你就应该有另外一行:

<PackageReference Include="Microsoft.Extensions.Configuration" Version="3.0.1" />

字符串
如果你确保所有的程序集都在你的项目中,并且问题仍然存在,那么请检查你的依赖树中的目标平台--例如。AnyCPU。如果我尝试在x64平台上运行Azure Functions v1.0.29,则会出现指定的错误。

z0qdvdin

z0qdvdin3#

将您的项目.net标准版本更改为2.0,并将.net核心版本升级到3.1,它将正常工作。

功能应用版本:v3
.Net Core:3.1
.Net标准版:2.0

我的azure函数应用程序成功运行在Linux容器上,具有上述配置

jaql4c8m

jaql4c8m4#

我在我的Azure Functions项目中遇到了类似的情况。我的项目可以很好地构建,但是当通过CLI调用某些函数时,我会得到类似的错误。对我有用的是为有问题的包包含一个包含性的下限引用,如下所示:

<PackageReference Include="Microsoft.Extensions.Primitives" Version="[7.0.0,)" />

字符串

**请特别注意版本控制部分。**包含下限是一个版本范围,指定您的项目可接受的包的最低版本。当你指定一个包含性下限时,你告诉NuGet只恢复等于或大于指定版本的包版本。在我的例子中,向“Microsoft.Extensions.Primitives”包的版本范围添加包含下限解决了这个问题,因为它确保NuGet只恢复7.0.0或更高版本的包。

相关问题