qVS 项目无法加载/找到任何程序集

问题描述 投票:0回答:1

我有一个 Visual Studio 项目(.NET Core 8、Azure Functions v4),它“可以在除我的机器之外的任何机器上运行”。

错误信息是:

“---”函数出错:无法加载文件或程序集“X.X.X,Version=8.0.0.0,Culture=neutral,PublicKeyToken=...”。系统找不到指定的文件。

我导入哪个包确实没有什么区别

System.Net.Http
System.Security.Cryptography.X509Certificates
- 它根本找不到任何东西。

根据我注释掉并删除导入的代码,消息略有不同:

在外部启动类中配置服务时出错。

XXX.Consumer:无法加载文件或程序集“System.Net.Http,Version=8.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”。系统找不到指定的文件。

启动操作“106f06bc-2885-4839-abfe-c23ed98b7b26”期间发生主机错误。

Microsoft.Azure.WebJobs.Script:在外部启动类中配置服务时出错。 XXX.Consumer:无法加载文件或程序集“System.Net.Http,Version=8.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”。系统找不到指定的文件。

其他 Azure Function 项目工作正常,但这个项目“卡住”了。

Visual Studio 2022 - 社区或专业版中存在相同问题。

我在这里阅读了数十个类似的问题并尝试过:

  • 清理并重建解决方案/项目
  • 重启 vs
  • 运行发布与调试
  • 删除整个调试/发布目录
  • 更新所有 NuGet 包
  • 在 DependencyWalker 中打开我的 bin/Debug/net8.0/Project.dll(见下文)

DependencyWalker
显示无数“打开文件时出错”。消息以及:

错误:未找到至少一个所需的隐式或转发依赖项。
错误:发现具有不同 CPU 类型的模块。
警告:至少未找到一个延迟加载依赖模块。
警告:由于延迟加载相关模块中缺少导出功能,至少有一个模块存在未解析的导入。

enter image description here

更新:

C# 项目文件

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <AzureFunctionsVersion>v4</AzureFunctionsVersion>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="AutoMapper" Version="13.0.1" />
    <PackageReference Include="Azure.Data.SchemaRegistry" Version="1.4.0" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.EventHubs" Version="6.3.5" />
    <PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.1.0" />

    <PackageReference Include="Microsoft.Extensions.Http" Version="8.0.0" />
    <PackageReference Include="Microsoft.Extensions.Options.DataAnnotations" Version="8.0.0" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.4.1" />
    <PackageReference Include="Newtonsoft.Json.Schema" Version="4.0.1" />

  </ItemGroup>
  <ItemGroup>
    <None Update="host.json">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
    <None Update="local.settings.json">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
  </ItemGroup>
</Project>

dotnet --list-sdks

8.0.204 [C:\Program Files\dotnet\sdk]

仅供参考:我后来安装了 .NET v6,看看它是否有帮助(因为 CoreToolsHost 正在记录“加载 .NET 6 主机”),但这没有帮助。

c# azure-functions .net-8.0
1个回答
0
投票

通过将以下行添加到

local.settings.json
来解决:

"FUNCTIONS_INPROC_NET8_ENABLED": "1",
© www.soinside.com 2019 - 2024. All rights reserved.