Visual studio -如何要求引用dll

本文关键字:引用 dll studio Visual | 更新日期: 2023-09-27 18:08:21

我有一个有一些dll引用的项目,我想使这些dll成为必需的参考。

示例:我的项目名为Main.dll,并引用了Dep1.dll和Dep2.dll。如果有人引用Main.dll,我希望该项目将失败编译,除非他引用Dep1.dll和Dep1.dll。(就像那些错误" reference required for assembly..")

有人知道我该怎么做吗?

Visual studio -如何要求引用dll

这归结为包管理。如果你只是部署dll,那么你现在所能做的就是说"你还需要添加一个对{whatever}.dll的引用"。但是,如果你使用像NuGet这样的工具(你可以有私有/本地NuGet库等);其他包管理工具可用),您可以告诉包管理工具有关依赖项,并且它将自动添加它们

答案是你不能,除非你使用与Dep1.dll中的类相关的方法/属性/构造函数等。

例如

Dep1.dll   
   Dep1Class.cs
Main.dll
   References
      Dep1
   MainClass.cs
OtherComponent.dll
   References
      Main
   OtherComponentClass.cs
public class MainClass
{
   public Dep1Class Dep1Property { get; set; }
}
public class OtherComponentClass
{
   public OtherComponentClass
   {          
      var x = new MainClass();
      //// compile error, The type 'Dep1.Dep1Class' is defined in an assembly that is not referenced. You must add a reference to assembly 'Dep1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
      //x.Dep1Property = null;
   }
}