У меня есть настраиваемая задача msbuild с выходным параметром, определенным ниже
public class DeployJavaScript : Task
{
[Required]
public ITaskItem[] SourceFiles { get; set; }
[Output]
public string Result { get; set; }
#region Overrides of Task
public override bool Execute()
{
foreach (var sourceFile in SourceFiles)
{
}
Result = String.Format("Sucessfully Deployed Javascript Files");
return true;
}
#endregion Overrides of Task
}
В моем сценарии сборки (файл csproj) я расширяю msbuild, внедряя свою настраиваемую задачу в цель AfterBuild, как определено ниже.
<Target Name="AfterBuild">
<Message Text="AfterBuild Begin" Importance="high"/>
<PropertyGroup>
<JavaScriptFolderPath Condition=" '$(JavaScriptFolderPath)' == '' " >$(MSBuildProjectDirectory)\</JavaScriptFolderPath>
<JavaScriptFilePath></JavaScriptFilePath>
</PropertyGroup>
<ItemGroup>
<JavaScriptFolderFiles Include="$(JavaScriptFolderPath)\**\*.js"/>
</ItemGroup>
<ItemGroup>
<JavaScriptFiles Include="$(JavaScriptFilePath)"/>
</ItemGroup>
<DeployJavaScript SourceFiles="@(JavaScriptFolderFiles->'%(FullPath)')">
<Output TaskParameter="Result" PropertyName="ResultofJavaScriptDeployment"/>
</DeployJavaScript>
<Message Text="$(ResultofJavaScriptDeployment)" Importance="high"/>
<Message Text="AfterBuild Complete" Importance="high"/>
However, msbuild complains "Unknown output parameter Result,'DeployJavaScript' should have no output parameters"
Почему я не могу вернуть выходной параметр в этом сценарии?
P.S Я знаю, что могу использовать Log.LogMessage (MessageImportance.high, "sucess", high) для регистрации результата в файле proj, который будет служить моей цели. Просто хочу знать, почему я не могу использовать выходной параметр.