C# 如果解决方案缺少引用的项目,则MSBuild解决方案生成失败

C# 如果解决方案缺少引用的项目,则MSBuild解决方案生成失败,c#,visual-studio,msbuild,C#,Visual Studio,Msbuild,我的公司目前正在构建非常大的解决方案,我们将其用作主解决方案。开发人员可以将他们的项目添加到主解决方案中,以使其进入夜间构建。但是,有时项目引用的项目不在解决方案中,这会导致一些奇怪的问题 如果检测到任何外部项目,我希望解决方案构建失败。是否有可以设置为执行此操作的MSBuild属性?有关获取.sln中每个项目的项目引用列表的信息,请参阅 使用该代码,您可以根据引用和.sln中的内容确定是否存在任何“外部”项目 代码本身可能会陷入一种在检测到任何外部项目时都会失败的状态 要使用该任务,您需要以某

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

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

有关获取.sln中每个项目的项目引用列表的信息,请参阅

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

代码本身可能会陷入一种在检测到任何外部项目时都会失败的状态

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


另一种方法是创建一个wrapper.proj,该wrapper.proj首先在.sln上执行MSBuild(使用虚拟目标)以生成.metaproj,然后执行自定义任务,然后运行实际任务以生成.sln。

;你是说构建失败了吗?如果引用的项目不包括在内,我很难看到构建是如何成功的。引用的项目仍然是构建的,但是使用默认的配置/平台,通常是Debug/AnyCPU。我们在版本中构建,这意味着此项目是在调试中构建的,可能没有正确的设置。这就是没有失败的怪异。我已经创建了任务。我找不到别的办法。我会把这个作为答案,因为我找不到一个自动的方法来做这件事。