c# - 阻止 NuGet 包

标签 c# visual-studio nuget

终于recovering之后来自 System.Net.Http package hell我们想完全阻止包裹。

我正在寻找一种方法来阻止安装包,所以不是阻止或锁定一个版本而是整个包(由于依赖项或开发人员错误)。该 block 应位于应用程序的解决方案文件夹中,以便每个开发人员在从 SVN 更新后都将拥有该 block 。

我查看了 NuGet.config 和 .nuspec 文档,但找不到这样的功能。我的 Google-fu 也没有产生任何结果。所以我想知道这里是否有人知道是否可以以及如何完成。

我打开了一个 GitHub issue

最佳答案

我也许可以提供一个解决方法。我们想要类似的东西(防止引用 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.");
    }
}

它并不完美,实际上并不会阻止程序包的下载,但它可以防止意外引用和使用程序集。

关于c# - 阻止 NuGet 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52715945/

相关文章:

c# - 从具有重复键的数据库查询创建 C# 字典

c# - 从aspx调用aspx.cs中的ajax方法

c# - Roslyn CodeFixProvider 未在 Visual Studio IDE 中加载或运行。我错过了什么?

c# - 如何在不必声明泛型类型的情况下使用具有泛型的类

.net - Visual Studio 2012 不会保存/覆盖只读文件

c# - 生成的(由 T4)文件 Build Action 被重置为 Build

c++ - 错误 :unable to match function definition to an existing declaration

c# - .Net 找不到 Nuget 包所需的引用依赖项

entity-framework - 如何使 EF Core Tools 3.1.2 工作?

asp.net - 无法在 Sitecore 8.1 项目中加载文件或程序集 Microsoft.Extensions.DependencyInjection.Abstractions