Сборка с использованием неправильной версии платформы из ProjectReference.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Сборка с использованием неправильной версии платформы из ProjectReference.

Сообщение Anonymous »

У меня есть решение, содержащее несколько проектов. Один из них (назовем его ProjectA) настроен на сборку для net48;net6.0. Есть еще несколько проектов, которые представляют собой только .NET 4.8 и ссылаются на ProjectA, и они собираются нормально, но проект модульного теста получает странную ошибку компиляции при сборке через MSBuild в нашем агенте сборки Jenkins (VS2022 собирается нормально)

Сборка "ProjectA" с идентификатором "ProjectA, Version=24.3.99.0, Culture=neutral, PublicKeyToken=null" использует "System.Xml.ReaderWriter, Version=6.0.0.0" , Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", которая имеет более высокую версию, чем ссылочная сборка "System.Xml.ReaderWriter" с идентификатором "System.Xml.ReaderWriter, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"


Сборка «ProjectA» с идентификатором «ProjectA, Version=24.3.99.0, Culture=neutral, PublicKeyToken=null» использует «System. Среда выполнения, версия = 6.0.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a», которая имеет более высокую версию, чем ссылочная сборка «System.Runtime» с идентификатором «System.Runtime, версия = 4.1.2.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a»

Похоже, что он использует версию .NET 6 вместо версии .NET 4.8. Подтверждаем, что если я изменю ProjectA на сборку только как .net 4.8, проект модульного теста будет собираться нормально.
После некоторого поиска в Google я попробовал включить его следующим образом:

Код: Выделить всё


TargetFramework=net48


Но это не помогло.
Я также пытался создать проект модульного теста как для версии 4.8, так и для версии 6 (в любом случае, это цель) и он получает ту же ошибку.
Одна вещь, которая может быть подсказкой, заключается в том, что он работает нормально, если я собираю его с помощью Visual Studio 2022, но сборка Jenkins с использованием MSBuild выдает ошибку. Я не уверен, какая версия инструментов установлена ​​в агентах сборки Jenkins. Я спрашивал, но не получил
Не знаю, актуально ли это, но проект модульного тестирования использует эти пакеты Nuget
  • Минимальный заказ 4.18.4
  • NUnit 4.1.0
  • NUnit3TestAdapter 4.5.0
  • Должно быть 1.1.20
Есть еще одна ошибка, которая, как я полагаю, связана с

ошибкой CS0119: «Extensions.Attributes(IEnumerable)» — это метод, который недопустим в данном контексте.

Это странно, поскольку рассматриваемый код делаю что-то вроде;

Код: Выделить всё

var value = node.Attributs["Key"];
Где node — это XmlNode, а Attributes — это свойство типа XmlAttributeCollection. Опять же, VS2022 компилируется нормально, но MSBuild запутался.

Подробнее здесь: https://stackoverflow.com/questions/787 ... treference
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»