【发布时间】:2013-05-11 10:45:36
【问题描述】:
是否可以从 MsBuild 自定义任务中判断项目是从哪个解决方案构建的,或者哪些其他项目也参与了构建?
编辑:
试图澄清一下上下文。
假设我有以下设置:
Company
+- LibA
+- LibA.csproj
+- LibB
+- LibB.csproj
+- App1
+- App1.sln : App1.csproj, LibA.csproj, LibB.csproj
+- App1.csproj
+- App2
+- App2.sln : App2.csproj, LibA.csproj
+- App2.csproj
如您所见,App1 和 App2 都使用 LibA 并将其包含在解决方案中。然而 LibB 只存在于一种解决方案中。
现在让我们假设 LibA 和 LibB 之间存在某种关系,并且这种关系由 LibA/LibA.csproj 中的自定义 MsBuild 任务处理。但是,要做到这一点,自定义任务需要知道 LibB 是否参与了当前构建,或者它是否存在于当前解决方案中。请记住,这两个解决方案中使用的 csproj 文件相同。
我不介意自动或将元数据添加到 .sln 文件中。
有没有办法做到这一点?
【问题讨论】:
-
您能详细说明您的问题吗?也许添加一个样本或元样本?
-
您可以在 LibB 中添加自定义属性,并在 LibA 中使用条件来检查该属性是否存在。