Sc0*_*tTy 8 c# visual-studio nuget
最终从System.Net.Http包地狱中恢复后,我们希望完全阻止该包。
我正在寻找一种方法来阻止包安装,因此不会阻止或锁定某个版本,而是阻止整个包(由于依赖性或开发人员错误)。该块应该位于应用程序的解决方案文件夹中,以便每个开发人员从 SVN 更新后都会拥有该块。
我查看了 NuGet.config 和 .nuspec 文档,但无法找到这样的功能。我的 Google-fu 也没有产生任何结果。所以我想知道这里是否有人知道是否可以以及如何做到这一点。
我已经打开了GitHub 问题
我也许可以提供一个解决方法。我们想要类似的东西(防止引用 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.");
}
}
Run Code Online (Sandbox Code Playgroud)
它并不完美,实际上并不会阻止下载包,但它可以防止意外引用和使用程序集。
归档时间: |
|
查看次数: |
1181 次 |
最近记录: |