无法在 Windows Server Env 中加载文件或程序集“System.Runtime”错误

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

我将一个 WPF 项目从 .NET Framework 迁移到 .NET 6,该项目在我的本地系统(Windows 11)上构建得很好。然而,当我转向 Azure 管道时,我们收到了此错误,并且可以在 Windows Server 2022 VM 上复制该错误。 完整的错误是

Error   LC0000  'Could not load file or assembly 'System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. Reference assemblies should not be loaded for execution.  They can only be loaded in the Reflection-only loader context. (Exception from HRESULT: 0x80131058)' ProAnalysisUI   C:\...\ProAnalysisUI\LC 1   

有几点让我困惑:

  1. 错误显示缺少程序集,但该项目中并未直接使用“System.Runtime”。只有一个依赖项包含此程序集,并且它与 .NET 6 兼容。我如何跟踪程序集导致此错误的位置?
  2. 它显示错误发生在文件
    LC
    中,我没有直接在文件结构中看到它。这个文件是什么意思?
  3. 为什么我的本地系统 windows 11 上不存在该错误?

更新1:

经过一些实验,我能够在第三方工具 Actipro 中隔离问题。有两种方法可以集成该工具。我使用的第一种方法是安装软件并引用程序集。效果很好。由于我们要迁移到 Azure,我不得不切换到第二种方式,即他们的 Nuget 包。它在我的本地系统上运行良好,但在管道/虚拟机上运行不佳。今天,我卸载了本地安装的 Actipro,并且在本地计算机上看到了相同的错误。所以我猜这个问题与VM无关。有没有办法让 Nuget 包从本地存储读取许可证信息?这是他们的官方指南的链接:https://www.actiprosoftware.com/docs/controls/wpf/licensing

c# .net wpf azure
1个回答
1
投票

该问题是由现有的 .licx 文件引起的,Actipro .NET 6 不再支持该文件。删除该文件后,它可以正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.