Блокировка пакета NuGet - PullRequest
       26

Блокировка пакета NuGet

0 голосов
/ 09 октября 2018

После, наконец, восстановления из System.Net.Http пакета ад мы хотели бы полностью заблокировать пакет.

Я ищу способ запретить установку пакета, чтобы не блокировать или блокировать версию, а весь пакет (из-за зависимости или ошибки разработчика).Блок должен находиться в папке решения приложения, чтобы у каждого разработчика был блок после обновления из SVN.

Я просмотрел документацию NuGet.config и .nuspec, но не смог найти такойособенность.Мой гугл-фу тоже не дал никаких результатов.Поэтому мне было интересно, есть ли здесь кто-нибудь, кто знает, если и как это можно сделать.

Я открыл выпуск GitHub

1 Ответ

0 голосов
/ 09 октября 2018

Я могу предложить обходной путь.Мы хотели сделать то же самое (не ссылаться на зависимости WinForms) и добавили модульный тест, который проверяет, есть ли ссылки на конкретные сборки:

private static readonly IEnumerable<string> BlockedAssemblies = new List<string>
{   
    "System.Net.Http"
};

[Test]
public void SpecificAssembliesAreNotReferenced()
{
    var asm = Assembly.Load("Your.Assembly.File");

    var refs = asm.GetReferencedAssemblies();
    foreach(var a in refs)
    {
        Assert.False(BlockedAssemblies.Contains (a.Name), $"{a.Name} must not be referenced.");
    }
}

Это не идеально, и фактически не блокирует загрузку пакета, нопредотвращает случайные ссылки и использование сборки.

...