如果解决方案缺少引用项目,则失败MSBuild解决方案

时间:2013-12-10 15:30:52

标签: c# visual-studio msbuild

我公司目前正在构建非常大的解决方案,我们将其作为主要解决方案。开发人员可以将他们的项目添加到主解决方案中,以使他们进入夜间构建。但是,有时项目会引用不在解决方案中的项目,这会导致一些奇怪的问题。

如果检测到任何外部项目,我想使解决方案构建失败。是否有可以设置为执行此操作的MSBuild属性?

1 个答案:

答案 0 :(得分:0)

请参阅this answer获取.sln中每个项目的项目参考列表。

使用该代码,您可以根据引用以及.sln中的内​​容确定是否存在任何“外部”项目。

代码本身可能会进入custom MSBuild task,但在检测到任何外部项目时都会失败。

要使用该任务,您需要以某种方式从.csproj / .proj运行它。一种简单的方法是首先构建一个新项目并覆盖Build目标以运行新任务。

另一种方法是创建一个包装器.proj,首先在.sln上执行MSBuild(带有虚拟目标)以生成.metaproj,然后执行自定义任务,然后运行实际任务来构建.sln