MSBuild 如何传递参数以设置属性值

本文关键字:设置 属性 参数 何传递 MSBuild | 更新日期: 2023-09-27 18:33:02

>假设我在解决方案中有 3 个 cs 项目,并且我在所有 3 个 csproj 文件中导入此 Common.props 文件。

这是我的 Common.props 文件,它将位于解决方案级别,

我的解决方案中的每个项目都将导入此 Common.props 文件,我正在尝试弄清楚如何通过命令行在构建服务器上设置 Externals 属性,该命令行将调用自定义 CI.Build 文件,该文件也将位于解决方案级别。MSBuild 对我来说很新,我做了各种寻找答案,但我发现的任何东西对我来说都没有 100% 的意义。

   <?xml version="1.0" encoding="utf-8"?>
    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
        <PropertyGroup>
           <Externals Condition="'$(Externals)'==''">..'..'..'Externals'</Externals>
           </PropertyGroup>
           <ItemGroup>
               <ThirdPartyLibs Include="$(OutputPath)'*.dll" />
           </ItemGroup>
           <Target Name="BeforeResolveReferences">
           <PropertyGroup>
               <AssemblySearchPaths>$(Externals);$(AssemblySearchPaths)</AssemblySearchPaths>
           </PropertyGroup>
           </Target>
               <Target Name="BeforeBuild">
               <Message Text="$(Externals)"></Message>
           </Target>
           <Target Name="AfterBuild">
               <Message Text="After Build______"></Message>
           </Target>
           <Target Name="CleanDlls" AfterTargets="Clean">
               <Delete Files="@(ThirdPartyLibs)"></Delete>
           </Target>
    </Project>

MSBuild 如何传递参数以设置属性值

使用/p 选项启动 msBuild 以传递参数:

MSBuild.exe /p:Externals="c:'Temp"

MsBuild 命令行参考