visual-studio – 轻松的方式来添加多个现有的.csproj到Visual Studio解决方案?

我已经从源代码控制检出了一个C#代码的分支。它在不同的文件夹中可能包含50个项目。没有找到现有的.sln文件。

我打算创建一个空白的解决方案,以添加现有的解决方案。 UI只允许我一次做一个项目。

有什么我错过了吗?我想指定一个* .csproj文件的列表,并以某种方式想出一个.sln文件,其中包含所有的项目。

这里是一个PowerShell版本的Bertrand的脚本,它假设解决方案文件旁边的Src和Test目录。

function GetGuidFromProject([string]$fileName) {
    $content = Get-Content $fileName

    $xml = [xml]$content
    $obj = $xml.Project.PropertyGroup.ProjectGuid

    return [Guid]$obj[0]
}

$slnPath = "C:\Project\Foo.sln"

$solutionDirectory = [System.IO.Path]::GetDirectoryName($slnPath)

$srcPath = [System.IO.Path]::GetDirectoryName($slnPath)
$writer = new-object System.IO.StreamWriter ($slnPath, $false, [System.Text.Encoding]::UTF8)

$writer.WriteLine("Microsoft Visual Studio Solution File, Format Version 12.00")
$writer.WriteLine("# Visual Studio 2013")

$projects = gci $srcPath -Filter *.csproj -Recurse

foreach ($project in $projects) {
   $fileName = [System.IO.Path]::GetFileNameWithoutExtension($project)

   $guid = GetGuidFromProject $project.FullName

   $slnRelativePath = $project.FullName.Replace($solutionDirectory, "").TrimStart("\")

   # Assume the project is a C# project {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
   $writer.WriteLine("Project(""{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"") = ""$fileName"", ""$slnRelativePath"",""{$($guid.ToString().ToUpper())}""")
   $writer.WriteLine("EndProject")
}

$writer.Flush()
$writer.Close()
$writer.Dispose()
http://stackoverflow.com/questions/1891035/easy-way-to-add-multiple-existing-csproj-to-a-visual-studio-solution

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:visual-studio – 轻松的方式来添加多个现有的.csproj到Visual Studio解决方案?