c# - 无法调试.NET Core : Could not load file or assembly 'System.运行时,版本=4.2.1.0/4.2.0.0

标签 c# azure debugging .net-core azure-functions

这不是一个问题。只是想分享我如何在出现标题中的错误后最终在 Visual Studio 中调试 .net core 项目。 我尝试了很多建议,但每次尝试调试 .net core 项目时 - 即使是 HTTP 触发器模板(V2)的全新 Azure 功能 - 我都会收到 System.Runtime Version=4.2.1.0 缺失的错误。 首先,我注意到新项目的目标是.net 标准。我将其更改为 .net core,因此我的 .csproj 文件如下所示:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <AzureFunctionsVersion>v2</AzureFunctionsVersion>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.13" />
  </ItemGroup>
  <ItemGroup>
    <None Update="host.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="local.settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
  </ItemGroup>
</Project>

我尝试添加

<PropertyGroup>
    <UseNETCoreGenerator>true</UseNETCoreGenerator>
</PropertyGroup>

<PackageReference Include="System.Runtime" Version="4.3.1" />

到 .csproj 文件,但这也没有帮助。

我什至尝试卸载 VS 2017 和 VS 2019 以及所有 .net core 软件包,然后重新安装它们。但仍然没有运气。 然后我得出一个结论,这与我的机器有关 - 某些数据已损坏。 Microsoft 将 .net core 的数据存储在用户的“隐藏”%APPDATA% 文件夹中:

C:\Users\<USERNAME>\AppData\Local\AzureFunctionsTools\

显然,我的丢失了相当多的数据。大约 300 MB,而不是 ~700。我想这与我办公室的互联网连接速度慢有关。

我找到了这篇文章: https://github.com/Azure/azure-functions-host/issues/3759 soninaren,提到了他所做的步骤,并且还提供了未损坏的 AzureFunctionsTools 模板的来源: https://github.com/soninaren/Workarounds/releases/download/1.0.0/AzureFunctionsTools.zip

只需解压缩,打开您在其中找到的每个manifest.json 文件并替换标签TemplatesDirectory 中的用户名,以便它将指向您的用户名文件夹。然后,删除 AzureFunctionsTools 文件夹 ( C:\Users\<USERNAME>\AppData\Local\AzureFunctionsTools\ ) 并复制编辑的 zip 内容。

瞧,您应该能够调试 .net core 项目,并且您的新 Azure 函数项目最初将针对 .net core。

希望这有帮助, 罗恩

最佳答案

感谢罗恩的贡献。为了让其他人在遇到相关问题时能够在SO中快速找到解决方案,我在这里写下Ron的努力:

如果您遇到此问题,

1、首先,显示计算机上的隐藏文件夹。 Azure Function Tools 位于此目录中:C:\Users\<USERNAME>\AppData\Local\AzureFunctionsTools\ ,删除azure function tools文件夹。

2、第二次点击this link下载Azure Function Tools。

3、第三步,解压,然后打开各个manifest.json文件。替换标签 TemplatesDirectory 中的用户名。之后,将它们复制到 C:\Users\<USERNAME>\AppData\Local\AzureFunctionsTools

关于c# - 无法调试.NET Core : Could not load file or assembly 'System.运行时,版本=4.2.1.0/4.2.0.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60391433/

相关文章:

ruby-on-rails - 在 Ruby on Rails 上,我们如何在 Controller 内打印调试信息?

c# - 将 XML 读入 xsd.exe 生成的类。好主意?

c# - 我可以在其他程序(如类库)中使用用户定义的异常吗?

c# - 如何读取 HTML 文件并替换为我们的字符

c# - 如何使用 Azure.Storage.Blobs 上传流

azure - 使用哪种 Azure 监视服务来可视化组件之间的关系?

javascript - Node 检查器不适用于 Node 6.0.0

c# - 创建范围表

c# - 当 Service Bus Explorer 添加垃圾时如何读取消息正文 C# 重新提交消息时 http ://schemas. microsoft.com/2003/10/Serialization -

perl - 在 Perl 中,如何将 Dumper 的输出写入文件?