2010-06-02 64 views
2

被默认在mytask.targets,我有这样的:如何能任务参数中的MSBuild

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

这个任务目前有一个必需的参数(如有必要,需要哪些可以改变)。

当任务时:

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

目前,RequiredParam必须指定每次。无论如何,当定义UsingTask时,可以设置默认值,因此不必在每次使用DoStuff时指定它?

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

谢谢。

回答

4

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

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

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

在这种情况下,我定义属性ReqParam帕拉姆 - 默认 - 值只有当财产已经没有价值。这不是你正在寻找的东西,但它可能是你最好的选择,除非你可以改变任务本身。

+0

嗨。感谢您的建议。我的意图的确是避免在DoStuff调用中提及RequiredParam。而且,我可以自己改变任务。 – 2010-06-03 08:17:07