如何在MSBuild中设置任务参数的默认值

3
在我的 task.targets 文件中,我有如下内容:
<UsingTask TaskName="DoStuff" AssemblyFile="....etc....."/>
<PropertyGroup>
  <RequiredParamDefault>hello</RequiredParamDefault>
</PropertyGroup>

这项任务目前有一个必需的参数(如果需要可以更改为非必需)。

当使用该任务时:

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

目前,每次都必须指定RequiredParam。有没有办法在定义UsingTask时设置默认值,以便在使用DoStuff时不必每次都指定?

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

谢谢。

1个回答

6

在UsingTask或Task中无法完成此操作,但您可以使用传递到任务中的属性来实现。例如:

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

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

在这种情况下,如果属性没有值,我将定义属性ReqParamParam-Default-Value。虽然这不完全符合您的需求,但除非您可以更改任务本身,否则这可能是您最好的选择。

嗨。谢谢你的建议。我的真正意图是避免在调用DoStuff时提及RequiredParam。而且,我可以改变任务本身。 - Scott Langham

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接