Msbuild 如何在文件夹中构建所有解决方案的所有项目?

Msbuild 如何在文件夹中构建所有解决方案的所有项目?,msbuild,Msbuild,如何在文件夹中构建所有解决方案的所有项目?创建包含所有项目的新解决方案对我来说不可行,因为我必须从“项目依赖项…”或“项目构建顺序”中为每个项目添加所有依赖项目我有30个解决方案中的150个项目,要成功构建,需要维护项目构建顺序。这可以使用自定义msbuild脚本完成。由于您希望在每个解决方案中保留项目依赖关系,因此剩余的选项是查找并生成目录层次结构中的所有解决方案文件 创建包含以下内容的文件buildAllSlns.proj时: <Project DefaultTargets="Buil

如何在文件夹中构建所有解决方案的所有项目?创建包含所有项目的新解决方案对我来说不可行,因为我必须从“项目依赖项…”或“项目构建顺序”中为每个项目添加所有依赖项目我有30个解决方案中的150个项目,要成功构建,需要维护项目构建顺序。

这可以使用自定义msbuild脚本完成。由于您希望在每个解决方案中保留项目依赖关系,因此剩余的选项是查找并生成目录层次结构中的所有解决方案文件

创建包含以下内容的文件
buildAllSlns.proj
时:

<Project DefaultTargets="Build">
  <ItemGroup>
    <Solution Include="**\*.sln" />
  </ItemGroup>
  <Target Name="Build">
    <MSBuild Projects="@(Solution)" Targets="Build" Properties="Configuration=Release" />
  </Target>
</Project>

这可以使用自定义msbuild脚本完成。由于您希望在每个解决方案中保留项目依赖关系,因此剩余的选项是查找并生成目录层次结构中的所有解决方案文件

创建包含以下内容的文件
buildAllSlns.proj
时:

<Project DefaultTargets="Build">
  <ItemGroup>
    <Solution Include="**\*.sln" />
  </ItemGroup>
  <Target Name="Build">
    <MSBuild Projects="@(Solution)" Targets="Build" Properties="Configuration=Release" />
  </Target>
</Project>

加上我的两分钱:

我使用的是Visual Studio 2015,所以我运行了“VS2015的开发者命令提示符”(适用于VS afaik的每个版本)

然后,我导航到需要使用调试配置构建的所有解决方案的根目录,最后执行以下命令:

for /r %x in (*.sln) do devenv %x /build Debug

加上我的两分钱:

我使用的是Visual Studio 2015,所以我运行了“VS2015的开发者命令提示符”(适用于VS afaik的每个版本)

然后,我导航到需要使用调试配置构建的所有解决方案的根目录,最后执行以下命令:

for /r %x in (*.sln) do devenv %x /build Debug

我收到“跳过目标,因为所有输出文件都是最新的”消息。如何强制生成?您可以将
Targets=“build”
更改为
Targets=“Rebuild”
更改为“Rebuild”也会给出相同的消息。此内容是否深入到所有子文件夹?它是您收到的唯一消息还是众多消息之一?想知道跳过了哪个目标会很有趣。如果在重建解决方案本身时也会发生这种情况,那么就可以了。(例如,
msbuild.sln/p:Configuration=Release/t:Rebuild
)我的项目文件,如下所示。我收到“跳过目标,因为所有输出文件都是最新的”消息。如何强制生成?您可以将
Targets=“build”
更改为
Targets=“Rebuild”
更改为“Rebuild”也会给出相同的消息。此内容是否深入到所有子文件夹?它是您收到的唯一消息还是众多消息之一?想知道跳过了哪个目标会很有趣。如果在重建解决方案本身时也会发生这种情况,那么就可以了。(例如,
msbuild.sln/p:Configuration=Release/t:Rebuild
)我的项目文件,如下所示。