Mic*_*art 35 projects-and-solutions csproj visual-studio
我从源代码管理中检查了一个C#代码分支.它包含各种文件夹中的50个项目.没有找到现有的.sln文件.
我打算创建一个空白解决方案来添加现有解决方案.用户界面只允许我一次完成这个项目.
有什么我想念的吗?我想指定一个*.csproj文件列表,并以某种方式提出一个包含所有项目的.sln文件.
小智 22
PowerShell实现,以递归方式扫描脚本目录中的.csproj文件,并将它们添加到(生成的)All.sln:
$scriptDirectory = (Get-Item $MyInvocation.MyCommand.Path).Directory.FullName
$dteObj = [System.Activator]::CreateInstance([System.Type]::GetTypeFromProgId("VisualStudio.DTE.12.0"))
$slnDir = ".\"
$slnName = "All"
$dteObj.Solution.Create($scriptDirectory, $slnName)
(ls . -Recurse *.csproj) | % { $dteObj.Solution.AddFromFile($_.FullName, $false) }
$dteObj.Solution.SaveAs( (Join-Path $scriptDirectory 'All.sln') )
$dteObj.Quit()
Run Code Online (Sandbox Code Playgroud)
Ber*_*and 15
生成可执行文件的AC#实现,它创建一个解决方案,其中包含目录及其执行的子目录中的所有唯一*.csproj文件.
class Program
{
static void Main(string[] args)
{
using (var writer = new StreamWriter("All.sln", false, Encoding.UTF8))
{
writer.WriteLine("Microsoft Visual Studio Solution File, Format Version 11.00");
writer.WriteLine("# Visual Studio 2010");
var seenElements = new HashSet<string>();
foreach (var file in (new DirectoryInfo(System.IO.Directory.GetCurrentDirectory())).GetFiles("*.csproj", SearchOption.AllDirectories))
{
string fileName = Path.GetFileNameWithoutExtension(file.Name);
if (seenElements.Add(fileName))
{
var guid = ReadGuid(file.FullName);
writer.WriteLine(string.Format(@"Project(""0"") = ""{0}"", ""{1}"",""{2}""", fileName, file.FullName, guid));
writer.WriteLine("EndProject");
}
}
}
}
static Guid ReadGuid(string fileName)
{
using (var file = File.OpenRead(fileName))
{
var elements = XElement.Load(XmlReader.Create(file));
return Guid.Parse(elements.Descendants().First(element => element.Name.LocalName == "ProjectGuid").Value);
}
}
}
Run Code Online (Sandbox Code Playgroud)
iCo*_*ime 14
这里已经有很多答案,但没有一个像这个 powershell oneliner 那样清晰
Get-ChildItem -Recurse -Include *.csproj | ForEach-Object { dotnet sln add $_ }
Run Code Online (Sandbox Code Playgroud)
VS的扩展可用,能够添加所选目录中的所有项目(以及更多):
http://www.cyotek.com/blog/visual-studio-extension-for-adding-multiple-projects-to-a-solution
| 归档时间: |
|
| 查看次数: |
19054 次 |
| 最近记录: |