从<;MSBuild>;任务
我有一个自定义的MSBuild项目文件,其中包含很少的从<;MSBuild>;任务,msbuild,task,Msbuild,Task,我有一个自定义的MSBuild项目文件,其中包含很少的。 我正在调用任务,我可以使用元素获取所有生成的程序集,并将@(OutputAssemblies)复制到目标目录 我希望能够从ResolveAssemblyReferences目标获取@(referenceCopylocalPath)项属性,但我不知道如何输出此属性 <Target Name="BuildDocumentationForReferencedProjects"> <MSBuild Projects=
。
我正在调用
任务,我可以使用
元素获取所有生成的程序集,并将@(OutputAssemblies)复制到目标目录
我希望能够从ResolveAssemblyReferences目标获取@(referenceCopylocalPath)项属性,但我不知道如何输出此属性
<Target Name="BuildDocumentationForReferencedProjects">
<MSBuild
Projects="@(ProjectReference)"
Targets="Build"
BuildInParallel="true"
Properties="DocumentationFile=$(DllDir)\%(FileName).xml"
>
<Output TaskParameter="TargetOutputs" ItemName="OutputAssemblies" />
</MSBuild>
<Copy SourceFiles="@(OutputAssemblies)" DestinationFolder="$(DllDir)" />
</Target>
将以下自定义目标添加到您的项目文件中,或添加到您希望获得此行为的所有项目导入的文件中
<Target Name="MyResolveReferences"
DependsOnTargets="ResolveReferences"
Returns="@(ReferenceCopyLocalPaths)">
</Target>
然后,您可以直接调用此目标并捕获您感兴趣的项数组,因为此临时目标将其声明为其“返回”值
除了@(ReferenceCopyLocalPaths)之外,还有许多其他可能有趣的项数组,只需查看在ResolveAssemblyReferences目标(我的是第1400行)中为调用ResolveAssemblyReference任务声明的所有输出的Microsoft.Common.targets即可。将以下自定义目标添加到项目文件中,或者到由所有项目导入的文件,您希望通过该文件获得此行为
<Target Name="MyResolveReferences"
DependsOnTargets="ResolveReferences"
Returns="@(ReferenceCopyLocalPaths)">
</Target>
然后,您可以直接调用此目标并捕获您感兴趣的项数组,因为此临时目标将其声明为其“返回”值
除了@(referencecopylocalpath)之外,还有许多其他项目数组可能很有趣,只需查看ResolveAssemblyReferences目标(我的是第1400行)中为调用ResolveAssemblyReference任务声明的所有输出的Microsoft.Common.targets即可。我不知道您可以通过这种方式返回值。那是个好主意!看起来这是一个.NET4.0的东西。你知道如何使用.NET3.5实现这一点吗?我不知道你可以通过这种方式返回值。那是个好主意!看起来这是一个.NET4.0的东西。你知道如何使用.NET3.5实现这一点吗?