3

我有一个包含多个项目(csproj 和 btproj)的解决方案。我实际上正在运行 BizTalk 2013 R2,所以我在 Visual Studio 2013 下进行开发。我有许多 powershell 脚本来部署我的应用程序,我必须增强它们。

我需要阅读或确定解决方案的项目构建顺序,以便按此顺序部署我的程序集。好的,我可以在“项目->项目依赖项”下获得它,但是这些信息存储在哪里?或者如何使用 powershell 以编程方式确定它们?

我试过这个脚本,但它为我的所有项目返回 0 个依赖项。可能是因为我的解决方案是 2013 年,而我正在使用v14.0\Microsoft.Build.dll. v12.0\Microsoft.Build.dll不返回任何项目。

Add-Type -Path (${env:ProgramFiles(x86)} + '\Reference Assemblies\Microsoft\MSBuild\v14.0\Microsoft.Build.dll')
$solutionFile = "sln file full path"
$solution = [Microsoft.Build.Construction.SolutionFile] $solutionFile

$projects = $solution.ProjectsByGuid.Values | Where-Object {($_.ProjectType -eq 'KnownToBeMSBuildFormat') -and ($_.ProjectName -notlike '*.BAM') -and ($_.ProjectName -notlike '*.Bindings')}
echo $projects.Count

foreach($project in $projects)
{ 
    echo $project.ProjectName $project.Dependencies.Count
}

另一种方法是解析 btproj 和 csproj 文件,但似乎很难为基本功能编写代码。

4

0 回答 0