我有一个带有一些dll引用的项目,我想让这些dll成为必需的引用。
示例:我的项目名为Main.dll,并且引用了Dep1.dll和Dep2.dll。 如果有人引用了Main.dll,我希望项目编译失败,除非他引用了Dep1.dll和Dep1.dll。 (就像那些错误“装配所需的参考......”)
任何人都知道我该怎么做?
答案 0 :(得分:0)
这归结为包管理。如果你只是部署了dll,那么你现在所能做的只是说“你还需要添加{whatever} .dll”的引用。但是,如果您使用NuGet之类的工具(您可以拥有私有/本地NuGet存储库等;其他包管理工具可用),您可以告诉包管理工具有关依赖关系,它会自动添加它们
答案 1 :(得分:0)
答案是你不能,除非你以编程方式使用与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;
}
}