我有一大堆.vcproj文件(~200)存储在不同的位置。我有一个完整路径的这些文件的列表。 如何自动将它们添加到解决方案文件(.sln)?
UPD:我正在寻找现有的工具/方法。
答案 0 :(得分:4)
我是这样做的:
创建并保存空白解决方案以将vcproj文件插入(文件 - >新项目 - >其他项目类型 - > Visual Studio解决方案 - >空白解决方案)
创建一个VS宏,将项目添加到解决方案,保存解决方案并退出。请尝试以下方法:
Public Sub AddProjectAndExit(Optional ByVal vcprojPath As String = "")
If Not String.IsNullOrEmpty(vcProjPath) Then
DTE.ExecuteCommand("File.AddExistingProject", vcprojPath)
DTE.ExecuteCommand("File.SaveAll")
DTE.ExecuteCommand("File.Exit")
End If
End Sub
创建一个批处理脚本,该脚本从Visual Studio命令提示符执行此宏,遍历每个.vcproj文件。单次执行的命令是:
devenv.exe BlankSolution.sln /Command "Macros.MyMacros.Module1.AddProjectAndExit MyProject1.vcproj"
希望有所帮助!
答案 1 :(得分:0)
.vcproj& .sln文件是ascii格式,因此您可以编写一个宏/脚本/程序来运行项目列表并将正确的信息插入.sln文件中。您需要了解项目的唯一其他信息是项目GUID,可以在.vcproj文件中找到(假设您的构建配置对于每个项目都相同)。
答案 2 :(得分:0)
修改和现有的vcwizard。
function CreateCustomProject(strProjectName, strProjectPath)
{
try
{
//This will add the default project to the new solution
prj = oTarget.AddFromTemplate(strProjTemplate, strProjectPath, strProjectNameWithExt);
//Create a loop here to loop through the project names
//you want to add to the new solution.
var prjItem = oTarget.AddFromFile("C:\\YourProjectPath\\YourProject.vcproj", false);
}
return prj;
}
catch(e)
{
throw e;
}
}