属性 MSBuild 的设置值

Setting value for a property MSBuild

如何根据参数值是否可用(来自 Jenkin 的作业)来设置 属性。如果可用,我需要使用该值,否则使用 MSBuild 中的默认值。

谢谢...

您可以通过 "condition" 执行此操作。 (如果需要,您可以选择堆叠它们)

第一个例子,如果命令行没有设置,就设置一个属性。下面,如果命令行(jenkins 可能会通过命令行发送属性).........如果命令行未设置 属性,则 属性 将解决花生。否则它将使用命令行发送的内容。

  <PropertyGroup>
    <WorkingCheckout Condition="'$(WorkingCheckout)'!=''">peanut</WorkingCheckout>
  </PropertyGroup>

为了好玩....第二个例子(这没有解决你的问题,但增强了这个答案)

设置 属性 使用条件并存在...如果有多种可能性。下面将检查

"..""..\..""..\..\.."

对于一个文件,如果文件存在则设置它。如果不满足 "exists" 条件,我会输入 "error message"。一个穷人的异常处理。

  <PropertyGroup>
    <MySettingsFile>Bad_Relative_Path_Logic_Need_To_Check_All_Relative_Paths</MySettingsFile>
    <MySettingsFile Condition="Exists('$(WorkingCheckoutMassaged)..\SomeFolder\MySettings.xml')">$(WorkingCheckoutMassaged)..\SomeFolder\MySettings.xml</MySettingsFile>
    <MySettingsFile Condition="Exists('$(WorkingCheckoutMassaged)..\..\SomeFolder\MySettings.xml')">$(WorkingCheckoutMassaged)..\..\SomeFolder\MySettings.xml</MySettingsFile>
    <MySettingsFile Condition="Exists('$(WorkingCheckoutMassaged)..\..\..\SomeFolder\MySettings.xml')">$(WorkingCheckoutMassaged)..\..\..\SomeFolder\MySettings.xml</MySettingsFile>
  </PropertyGroup>