如何使用命令行构建带有选定项目的Visual Studio解决方案文件.sln

4
我有一个.sln文件,其中包含大约352个项目。 我创建了以下批处理文件: "C:/Windows/Microsoft.NET/Framework/v4.0.30319/msbuild.exe myproj.sln /nologo /t:Build /p:Configuration="Debug" /property:Platform="Win32" pause" 但是这将从解决方案构建所有项目。我已经配置“配置管理器”以取消选择不需要的项目或卸载项目,并使用上述批处理文件进行构建,但这并没有达到目的。 我已经搜索了MSBuild选项,但没有找到确切的答案。 有人能帮我吗?
2个回答

4

MSbuild接受项目名称作为“target” (/t) 规范的一部分:

MSBuild /nologo /t:ProjectName:Build SolutionFile.sln

或者,如果您的项目不依赖于解决方案中的其他项目,则可以直接使用带有MSBuild的项目文件:

MSBuild /nologo /t:Build ProjectFile.vcxproj

这个技巧适用于Visual Studio 2010、2012、2013、2015、2017、2019和最新的MSVS 2022。


1
你可以创建一个包含你想要构建的项目的解决方案。或者,你可以创建一个 MSBuild .proj 文件,将你想要构建的项目收集在一起:
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <ProjectsToBuild Include="X.csproj;Child\Y.csproj" />
    </ItemGroup>
    <PropertyGroup>
        <Configuration>Release</Configuration>
    </PropertyGroup>

    <Target Name="Build">
        <MSBuild Projects ="@(ProjectsToBuild)" ContinueOnError ="false" Properties="Configuration=$(Configuration)">
            <Output ItemName="OutputFiles" TaskParameter="TargetOutputs"/>
        </MSBuild>
    </Target>
</Project>

源自http://sedodream.com/PermaLink,guid,ed3a0c98-fdac-4467-9116-5b3bf6755abc.aspx


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接