正在检查项目在MSBuild中是否具有特定目标
我的一些.csproj项目文件有一个特殊的目标“AssembleJS”,它将项目中包含的所有.js文件合并到一个大文件中(即webcontrols.csproj有目标“AssembleJS”和输出“webcontrols.js”) 所以如果我有projectparts.csproj正在检查项目在MSBuild中是否具有特定目标,msbuild,Msbuild,我的一些.csproj项目文件有一个特殊的目标“AssembleJS”,它将项目中包含的所有.js文件合并到一个大文件中(即webcontrols.csproj有目标“AssembleJS”和输出“webcontrols.js”) 所以如果我有projectparts.csproj 具有目标集合的 参考文献project WebControl.csproj 引用没有任何JavaScript和AssembleJS目标的实用工具项目utils.csproj 我希望parts.csproj的目标Ass
<MSBuild Project="@ReferencedProjects" Targets="AssembleJS"/>
无法工作,因为utils.csproj没有目标AssembleJ
有没有办法根据项目是否有特定的目标来过滤@ReferencedProjects
关于如何处理这种情况还有其他想法吗?您不能做您需要的事情。但是你可以通过批处理来实现它
<Project xmlns=''>
<ItemGroup>
<ReferencedProjects Include="webcontrols.csproj">
<Type>Web</Type>
</ReferencedProjects>
<ReferencedProjects Include="utils.csproj">
<Type>NonWeb</Type>
</ReferencedProjects>
</ItemGroup>
<Target Name="BuildWebProjects">
<MSBuild Projects="@(ReferencedProjects)" Condition=" '%(ReferencedProjects.Type)' == 'Web' " />
</Target>
</Project>
网状物
非网络
搜索MSBuild批处理,并在上找到一些结果以了解更多信息
信息
我是否应该对此进行扩展?这可能是MSBuild的最佳选择,但它所创建的大量手动工作使其无法使用。还有一件事,它是“ProjectReference”,而不是“ReferencedProjects”。好的,我只是讨论一下您在示例中创建的名称。