【发布时间】:2019-12-16 14:57:16
【问题描述】:
我编写了一个与表达式树相关的测试对象库(用于System.Linq.Expressions 中的类型),我在ExpressionTreeToString 的测试中使用它。
该库位于解决方案中的两个 .NET Standard 类库项目中:
-
ExpressionTreeTestObjects-- via the C# compiler 和 calling the expression tree factory methods 生成的表达式 -
ExpressionTreeTestObjects.VB-- VB.NET 编译器生成的表达式
ExpressionTreeTestObjects 还公开了获取对象列表的主要入口点(通过对当前域中程序集的反射)。
我想将两个 DLL 作为单个 NuGet 包发布。
我应该把 NuGet 包信息放在哪里?
显而易见的选择(在我看来)是ExpressionTreeTestObjects。但是,当ExpressionTreeTestObjects.VB 也依赖于ExpressionTreeTestObjects 时,那里怎么会有对ExpressionTreeTestObjects.VB 的引用?这不是循环构建依赖吗?
我想另一种方法是将生成表达式树对象的代码与主入口点代码分开;并将入口代码放在第三个项目(ExpressionTreeTestObjects.Loader)中,该项目将引用两个原始项目。然后,包信息将用于第三个项目。
但是添加一个单独的项目感觉应该是不必要的。
【问题讨论】:
标签: c# msbuild nuget expression-trees