Не удалось загрузить файл или сборку. Ошибка «System.Runtime» в среде Windows Server

Я перенес проект WPF из .NET Framework в .NET 6, который отлично работает в моей локальной системе (Windows 11). Однако когда я перешел на конвейер Azure, мы получили эту ошибку, и ее можно воспроизвести на виртуальной машине Windows Server 2022. Полная ошибка

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. В моей локальной системе все работало нормально, но не в Pipeline/VM. Сегодня я удалил локальную установку Actipro и вижу ту же ошибку на своем локальном компьютере. Поэтому я думаю, что эта проблема не связана с виртуальной машиной. Есть ли способ, чтобы пакет Nuget читал информацию о лицензии из локального хранилища? Вот ссылка на их официальное руководство: https://www.actiprosoftware.com/docs/controls/wpf/licensing

Среда выполнения системы 6 — это .net framework 6. Вы можете ссылаться на пространства имен там, но прежде всего нужно проверить, правильно ли вы ссылаетесь на это в своем yml. Разве это не на ВМ? Вам нужна версия Windows для wpf.

Andy 12.04.2024 19:09

@Энди Да, я так думаю. У меня есть другие проекты, ориентированные на ту же структуру и в том же решении. Они без проблем собираются на виртуальной машине.

zhangjinzhou 12.04.2024 19:31

Установлена ​​ли среда выполнения .NET6 с поддержкой рабочего стола Windows? Это конкретно должно быть на виртуальной машине. @andy, возможно, это была опечатка, но .NET6 будет ядром .NET, а не Framework. Таким образом, среда выполнения настольных приложений должна быть установлена ​​на виртуальной машине и не будет стандартной частью ОС.

Emperor Eto 13.04.2024 02:47

Извините, подождите, это сервер BUILD, а не виртуальная машина, на которой работает приложение? В этом случае это просто означает, что на сервере сборки не установлены нужные зависимости SDK.

Emperor Eto 13.04.2024 03:20

Могу ли я предположить, что проблема воспроизводится при сборке проекта на виртуальной машине Windows Server 2022 без использования конвейера? Скорее всего, это было вызвано отсутствием необходимой зависимости, установленной в среде.

Alvin Zhao - MSFT 15.04.2024 09:22

@AlvinZhao-MSFT Спасибо, ребята, за помощь. Кажется, проблема не связана с виртуальной машиной или конвейером. Теперь я могу воспроизвести проблему на своем локальном компьютере. Пожалуйста, посмотрите обновление.

zhangjinzhou 15.04.2024 23:27

@EmperorEto Спасибо за помощь. Кажется, проблема не связана с виртуальной машиной или конвейером. Теперь я могу воспроизвести проблему на своем локальном компьютере. Пожалуйста, посмотрите обновление.

zhangjinzhou 15.04.2024 23:28
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
8
104
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема вызвана существующим файлом .licx, который больше не поддерживается Actipro .NET 6. После удаления файла он работает без проблем.

Другие вопросы по теме