gpt4 book ai didi

visual-studio - 将多个现有的.csproj添加到Visual Studio解决方案的简单方法?

转载 作者:行者123 更新时间:2023-12-03 07:57:34 25 4
gpt4 key购买 nike

我已经从源代码管理中 checkout 了C#代码的一个分支。它可能在各个文件夹中包含50个项目。找不到现有的.sln文件。

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

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

最佳答案

这是Bertrand脚本的PowerShell版本,在解决方案文件旁边假定有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()

关于visual-studio - 将多个现有的.csproj添加到Visual Studio解决方案的简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1891035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com