Зависимости папок решения

1

Я создаю расширение Visual Studio, и я создаю папку с программным обеспечением программным способом. Но я не знаю, как создать папку с зависимым одним решением из другой папки решений? Может ли кто-нибудь помочь мне с этой проблемой? Благодарю!

|--- SolutionFolder
|          |--- SolutionFolder
|          |--- SolutionFolder
|--- SolutionFolder

Вот мой код:

(object sender, EventArgs args) =>
{
    Guid slnFldrGuid = new Guid("2150E333-8FDC-42A3-9474-1A3956D46DE8");
    Guid iidProject = typeof(IVsHierarchy).GUID;

    IVsSolution solution = GetService<IVsSolution, SVsSolution>();
    IVsHierarchy parent = UIShellUtilities.GetSelectedHierarchy();
    IVsHierarchy nested = null;

    IntPtr project = IntPtr.Zero;
    int canceled = 0;

    if ((null != solution) && (null != parent))
    {
        IVsProjectFactory factory = null;

        ErrorHandler.ThrowOnFailure(solution.GetProjectFactory(
            0, new Guid[] { slnFldrGuid }, null, out factory));

        try 
        {
            ErrorHandler.ThrowOnFailure(factory.CreateProject(
                null, null, "New My Folder", 0, ref iidProject,  out project, out canceled));

            if (project != IntPtr.Zero)
            {
                nested = Marshal.GetTypedObjectForIUnknown(project, typeof(IVsHierarchy)) as IVsHierarchy;

                Debug.Assert(nested != null, "Nested hierarchy could not be created");
                Debug.Assert(canceled == 0);
            }
        } finally
        {
            if (project != IntPtr.Zero)
                Marshal.Release(project);
        }

        uint itemid = VSConstants.VSITEMID_ROOT;

        // Link into the nested VS hierarchy.
        //ErrorHandler.ThrowOnFailure(nested.SetProperty(VSConstants.VSITEMID_ROOT, (int)__VSHPROPID.VSHPROPID_ParentHierarchy, parent));
        //ErrorHandler.ThrowOnFailure(nested.SetProperty(VSConstants.VSITEMID_ROOT, (int)__VSHPROPID.VSHPROPID_ParentHierarchyItemid, (object)itemid));
    }                        
}
Теги:
folder
visual-studio-2010
solution
vsx

1 ответ

0

Создание вложенных папок решений значительно проще с использованием модели автоматизации EnvDTE, которая также может использоваться из пакетов.

Видеть:

Как создать папку решения внутри другой папки решений http://blogs.msmvps.com/carlosq/2013/12/03/how-to-create-a-solution-folder-inside-another-solution-folder/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню