如何自动添加一大堆.vcproj文件到解决方案?

时间:2009-04-14 14:00:20

标签: visual-studio visual-studio-2008

我有一大堆.vcproj文件(~200)存储在不同的位置。我有一个完整路径的这些文件的列表。 如何自动将它们添加到解决方案文件(.sln)?

UPD:我正在寻找现有的工具/方法。

3 个答案:

答案 0 :(得分:4)

我是这样做的:

  1. 创建并保存空白解决方案以将vcproj文件插入(文件 - >新项目 - >其他项目类型 - > Visual Studio解决方案 - >空白解决方案)

  2. 创建一个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
    
  3. 创建一个批处理脚本,该脚本从Visual Studio命令提示符执行此宏,遍历每个.vcproj文件。单次执行的命令是:

    devenv.exe BlankSolution.sln /Command "Macros.MyMacros.Module1.AddProjectAndExit MyProject1.vcproj"
    
  4. 希望有所帮助!

答案 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;
    }
}