Лучший способ справиться с Пакет «x» x.x.x имеет известную уязвимость высокой степени серьезности.C#

Место общения программистов C#
Anonymous
Лучший способ справиться с Пакет «x» x.x.x имеет известную уязвимость высокой степени серьезности.

Сообщение Anonymous »

У меня есть проект, который зависит от пакета (назовем его packageA), этот пакет зависит от другого пакета (назовем его packageB), который имеет известную серьезную уязвимость. Итак, у меня есть переходный пакет с известной уязвимостью. Эта ситуация генерирует предупреждение, и, поскольку у меня включен TreatWarningsAsErrors, это вызывает ошибку.
Я знаю, что могу решить проблему, просто установив packageB непосредственно в свой проект с более высокой версией (которая не имеет уязвимости серьезности), чтобы устранить предупреждение. Однако у меня есть несколько проблем с этим:
  • Это засорит мой csproj дополнительными зависимостями. Я предпочитаю включать только те зависимости, которые мне нужны. Кроме того, я могу забыть причину, по которой добавлена ​​эта зависимость, и меня больше никогда не удалят.
  • Мне нужно управлять более чем 100 проектами, поэтому добавить эту зависимость везде или там, где это необходимо, не так просто. Кроме того, это увеличит вероятность загрязнения.
Итак, как лучше всего это сделать?
Мой подход
  • Я создал свой собственный SDK, который наследует от Microsoft SDK.
  • В этом SDK я определил следующее в целевом файле:

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

    Version="1.0.1"
    PrivateAssets="all"
    Publish="true"
    IsImplicitlyDefined="true"
    Visible="false" />
    
    
    Это решает проблему, связанную с тем, что я могу управлять этим централизованно, однако теперь этот пакет также включен в проекты, которым этот пакет вообще не нужен.
  • Я пробовал использовать такие теги, как
    , но кажется, что все будет так, если вы уже включили пакет самостоятельно, а не для транзитивного пакета.
  • Я пробовал транзитивное закрепление пакета вот так:

    файл реквизита:

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

    
    true
    true
    
    
    
    целевой файл:

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

    
    $(NoWarn);NU1510
    
    
    
    
    
    
    
    Но я все равно получаю то же предупреждение/ошибку
Итак, есть идеи, как решить эту проблему?>

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