如何在MSBuild中默认任务参数

如何在MSBuild中默认任务参数,msbuild,Msbuild,在mytask.targets中,我有如下内容: <UsingTask TaskName="DoStuff" AssemblyFile="....etc....."/> <PropertyGroup> <RequiredParamDefault>hello</RequiredParamDefault> </PropertyGroup> 你好 此任务当前有一个必需的参数(如有必要,可以将其从必需更改为必需) 使用任务时: <

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

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

你好
此任务当前有一个必需的参数(如有必要,可以将其从必需更改为必需)

使用任务时:

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

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

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


谢谢。

您不能在UsingTask或Task中执行此操作,而是可以使用传递到Task中的属性。比如说

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

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

参数默认值

在这种情况下,我将属性ReqParam定义为Param默认值,前提是该属性尚未具有值。这并不完全是您想要的,但它可能是您的最佳选择,除非您可以更改任务本身。

您好。谢谢你的建议。我的意图是避免在调用Dostaff时提及RequiredParam。而且,我可以改变任务本身。