我公司目前正在构建非常大的解决方案,我们将其作为主要解决方案。开发人员可以将他们的项目添加到主解决方案中,以使他们进入夜间构建。但是,有时项目会引用不在解决方案中的项目,这会导致一些奇怪的问题。
如果检测到任何外部项目,我想使解决方案构建失败。是否有可以设置为执行此操作的MSBuild属性?
答案 0 :(得分:0)
请参阅this answer获取.sln中每个项目的项目参考列表。
使用该代码,您可以根据引用以及.sln中的内容确定是否存在任何“外部”项目。
代码本身可能会进入custom MSBuild task,但在检测到任何外部项目时都会失败。
要使用该任务,您需要以某种方式从.csproj / .proj运行它。一种简单的方法是首先构建一个新项目并覆盖Build目标以运行新任务。
另一种方法是创建一个包装器.proj,首先在.sln上执行MSBuild(带有虚拟目标)以生成.metaproj,然后执行自定义任务,然后运行实际任务来构建.sln