1
나는 내가 AfterBuild 대상에서 내 사용자 지정 작업을 주입하여 MSBuild를 확장 내 빌드 스크립트 (csproj 파일)에서사용자의 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
}
아래에 정의 된 출력 매개 변수를 사용자 지정은 MSBuild 작업이 인식되지 그러나
<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"/>
아래의 MSBuild는"더 출력 매개 변수가 없어야한다 알 수없는 출력 매개 변수 결과, 'DeployJavaScript'를"불평
이 시나리오에서 출력 매개 변수를 반환 할 수없는 이유는 무엇입니까?
P.S 필자는 Log.LogMessage (MessageImportance.high, "sucess", high)를 사용하여 목적을 달성 할 proj 파일에 결과를 기록 할 수 있음을 알고 있습니다. 왜 내가 출력 매개 변수를 사용할 수 없는지 알고 싶습니다.