0
A
回答
3
我以前使用MSBuild Community Tasks'sGetSolutionProjects
爲此,但不幸的是它依賴於.NET 3.5。
要做到這一點使用CodeTask
(因爲.NET 4個可用)執行以下操作:
<UsingTask TaskName="GetProjectsFromSolutionCodeTask" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll" >
<ParameterGroup>
<Solution ParameterType="System.String" Required="true"/>
<Output ParameterType="Microsoft.Build.Framework.ITaskItem[]" Output="true"/>
</ParameterGroup>
<Task>
<Reference Include="System.Xml"/>
<Reference Include="Microsoft.Build"/>
<Using Namespace="Microsoft.Build.Construction"/>
<Code Type="Fragment" Language="cs">
<![CDATA[
var _solutionFile = SolutionFile.Parse(Solution);
Output = _solutionFile.ProjectsInOrder
.Where(proj => proj.ProjectType == SolutionProjectType.KnownToBeMSBuildFormat)
.Select(proj => new TaskItem(proj.AbsolutePath))
.ToArray();
]]>
</Code>
</Task>
</UsingTask>
並調用它像這樣:
<!-- Gets the projects composing the specified solution -->
<Target Name="GetProjectsFromSolution">
<GetProjectsFromSolutionCodeTask Solution="%(Solution.Fullpath)">
<Output ItemName="ProjectFiles" TaskParameter="Output"/>
</GetProjectsFromSolutionCodeTask >
</Target>
這將填充ProjectFiles
項集合與解決方案中所有項目的絕對路徑。
請注意:路徑爲CodeTaskFactory
因MSBuild版本而異。這裏的例子是MSBuild 14.0。
相關問題
- 1. MSBuild項目vs解決方案的相對路徑
- 2. msbuild解決方案文件
- 3. MSBuild解決方案
- 4. MSBuild解決方案與解決方案中的項目引用的DLL
- 5. Visual Studio(MSBuild)是否從解決方案或項目目錄中解析?
- 6. 從解決方案文件獲取當前配置的MSbuild
- 7. 如何從Visual Studio解決方案/項目中讀取文件?
- 8. 獲取Visual Studio中的解決方案項目文件外接
- 9. 解決方案文件夾外部解決方案目錄
- 10. 如何在Web應用程序解決方案中的特定項目中獲取文件路徑?
- 11. ASP.NET:獲取客戶端機器上的文件路徑(任何可能的解決方案/解決方法?)
- 12. Visual Studio解決方案有多個項目:參考路徑
- 13. 如何從同一解決方案中的其他項目獲取項目的相對路徑?
- 14. 以編程方式創建VS解決方案/項目文件
- 15. 如何在解決方案文件夾中的VSIX項目中獲得項目
- 16. 使用VS2010在解決方案文件中設置項目的輸出路徑
- 17. model.js文件中的訪問解決方案或項目路徑變量
- 18. 在構建時或運行時獲取解決方案路徑
- 19. 設置文件路徑以引用解決方案或項目根目錄下的文件
- 20. Plone多路徑表單解決方案
- 21. 路徑操作解決方案?
- 22. 長Java類路徑解決方案
- 23. C# - 將多項目解決方案轉換爲1-1項目解決方案
- 24. Team Foundation Server 2010/MSBuild:解析解決方案文件中的嵌套項目部分時出錯
- 25. MSBuild:命令行生成錯誤:解決方案文件錯誤MSB5023:解析嵌套項目部分時出錯
- 26. 在解決方案文件中包裝Web項目,以及CVS
- 27. 如何解析文件路徑並獲取父文件的父目錄?
- 28. Msbuild無法編譯Silverlight解決方案/項目
- 29. 從解決方案發佈一個web項目與msbuild
- 30. msbuild特定項目配置。簡單的解決方案?