MSBuild how to pass a parameter to set a property value?
c#, msbuild, msbuild-propertygroup
Solution
Start msBuild with /p option to pass argument :
MSBuild.exe /p:Externals="c:\Temp"
MsBuild command line reference
Problem
Assume I have 3 cs projects in a solution and I import this Common.props file in all 3 csproj files. Here is my Common.props file that will sit at the solution level, each project in my solution will import this Common.props file, I am trying to figure out how I can set the Externals property on the build server via command line that would call a custom CI.Build file that would also sit at the solution level also. MSBuild is pretty new to me, I did all kinds of searching for an answer to this but nothing I found made 100% sense to me. ``` <?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> ```