代码之家  ›  专栏  ›  技术社区  ›  Scott Langham

如何在msbuild中默认任务参数

  •  3
  • Scott Langham  · 技术社区  · 14 年前

    在mytask.targets中,我有如下内容:

    <UsingTask TaskName="DoStuff" AssemblyFile="....etc....."/>
    <PropertyGroup>
      <RequiredParamDefault>hello</RequiredParamDefault>
    </PropertyGroup>
    

    此任务当前有一个必需的参数(如有必要,可以从“必需”更改为“必需”)。

    使用任务时:

    <DoStuff RequiredParam="$(RequiredParamDefault)" OtherParam="wobble"/>
    

    目前,每次都必须指定RequiredParam。在定义usingtask时,是否可以设置默认值,这样就不必在每次使用dostuff时都指定它?

    我知道默认值可以在程序集中硬编码,但是我希望能够用不同的usingtask语句定义不同的默认值。

    谢谢。

    1 回复  |  直到 14 年前
        1
  •  5
  •   Sayed Ibrahim Hashimi    14 年前

    不能在using task或任务中执行此操作,但可以使用传递到任务中的属性。例如。

    <Target>
        <PropertyGroup>
            <ReqParam Condition=" '$(ReqParam)'=='' ">Param-Default-Value</ReqParam>
        </PropertyGroup>
    
        <DoStuff RequiredParam="$(ReqParam)" OtherParam="wobble"/>
    </Target>
    

    在这种情况下,我定义属性 雷帕拉姆 成为 参数默认值 仅当属性没有值时。这并不是你想要的,但它可能是你最好的选择,除非你可以改变任务本身。