终于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/