我只有我的其他项目的名称/位置,但我不想要求开发人员自己添加项目依赖关系。 所以我的prebuild事件需要通过某种msbuild魔术添加“引用”(=使当前项目依赖于另一个的任何东西)。 这可能吗?如何使我的项目通过msbuild依赖于其他项目?
期望中的伪代码:
<Task Name="MyOwnPrebuild">
<AddProjectDependencies ItemGroup="@MyProjectPaths" />
</Task>
在那里我会通过iteratating在我的窗口充满了@MyProjectPaths阵列递归文件夹中的一些其他任务调用此人之前。
这是不可能的。标准鸡与鸡蛋,当MSBuild决定开始运行预生成事件时,它已经计算出依赖关系。试图再次更改它们不起作用。不要隐藏依赖关系,客户端程序员在遇到问题时不会有机会找出错误。 – 2014-10-30 12:30:09
“到MSBuild决定开始运行预生成事件时,它已经计算出依赖”至少从查看Common.CurrentVersion.targets中的CoreBuild它不应该是真正的你说的ResolveReferences;在PreBuildEvent之后。 – Blub 2014-10-30 12:32:26
.targets文件中的一个或多个订单不相关。你可以很容易地自己推理出来,如果没有必要的话,MSBuild确实不会构建任何东西。当然,在开始执行任何操作之前,它需要知道依赖关系是否发生了变化,包括运行预生成事件。 – 2014-10-30 12:37:34