如何在MSBuild中默认任务参数

Sco*_*ham 3 msbuild

在mytask.targets中,我有类似的东西:

<UsingTask TaskName="DoStuff" AssemblyFile="....etc....."/>
<PropertyGroup>
  <RequiredParamDefault>hello</RequiredParamDefault>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

此任务当前具有必需参数(必要时可以根据需要更改).

使用任务时:

<DoStuff RequiredParam="$(RequiredParamDefault)" OtherParam="wobble"/>
Run Code Online (Sandbox Code Playgroud)

目前,必须每次都指定RequiredParam.无论如何,当定义UsingTask时,可以设置默认值,这样就不必在每次使用DoStuff时指定它吗?

我知道默认可以在程序集中进行硬编码,但我希望能够使用不同的UsingTask语句定义不同的默认值.

谢谢.

Say*_*imi 5

您不能在UsingTask或Task中执行此操作,而是可以使用传递给任务的属性.例如.

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

    <DoStuff RequiredParam="$(ReqParam)" OtherParam="wobble"/>
</Target>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,仅当属性尚未具有值时,才将属性ReqParam定义为Param-Default-Value.这不是您正在寻找的,但它可能是您的最佳选择,除非您可以更改任务本身.