代码库由数百个解决方案组成,每个解决方案都包含几个C#项目,所有这些项目都配置为将其输出DLL复制到特定文件夹中,然后其他项目可以从中引用它们。
项目(= DLL)有时会以第三方nuget包的形式隐藏依赖项,如果未在执行的项目中安装nuget包,则会导致运行时异常。是否存在内置(或任何方式)表示这些隐藏依赖项的存在,而没有显式传入第三方库中的必需类,如果未安装包,则会失败构建?
一个例子:
Project Company.ExternalClient提供了StackOverflow.Redis的包装器,提供了一个HiddenRedisClient类。
Project SomeMicroService引用Company.ExternalClient dll以使用HiddenRedisClient类,但不引用StackOverflow.Redis nuget包。它会编译但在运行时失败,这是问题所在。