Как вручную добавить папки решений в файл.sln?

Скажем, у меня есть решение, которое структурировано так:

|__TopLevelFolder
     |___ModuleFolder
         |____ProjectFile
         |____TestProjectFile

Я хочу создать еще один "ModuleFolder" в разделе "TopLevel" и добавить его соответствующий проект и тестовые файлы проекта. Тем не менее, для моих целей я должен вручную изменить файл.sln, чтобы добавить их (я делаю это как часть генератора yeoman, то есть я не могу сделать это в VS, как обычно).

Моя проблема в том, что когда я изменяю файл.sln, моя папка отображается как недоступный проект, а когда я пытаюсь перезагрузить его, загрузка завершается сбоем и появляется сообщение "Файл проекта или веб-страница не найдены". Вот что я делаю в файле.sln:

Сначала я добавляю папку:

Project("{GUID}") = "NewModuleFolder", "NewModuleFolder", "{NewModuleGUID}"
EndProject

Затем я добавляю фактический проект:

Project("{GUID}") = "TopLevel.NewModule.Tests", "src\TopLevel\NewModule\TopLevel.NewModule.Tests.csproj", "{TestProjectGUID}"
EndProject

Затем в разделе "preSolution" я добавляю строку, которая помещает NewModuleFolder под TopLevelFolder, а также TestProject под NewModuleFolder:

GlobalSection(NestedProjects) = preSolution
    {NewModuleGUID} = {TopLevelGUID}
    {TestProjectGUID} = {NewModuleGUID}
    ...
EndGlobalSection

Именно так все остальные папки и проекты работают в моем решении (поверьте мне, я дважды и трижды проверил, а также попытался переключить GUID, чтобы убедиться).

Любые идеи о том, как сделать эту работу или что я делаю неправильно (или другой способ, которым я должен делать это, учитывая, что я создаю йоменский генератор)?

Спасибо!!

1 ответ

Решение

Направляющая для типа проекта должна быть "2150E333-8FDC-42A3-9474-1A3956D46DE8", вторая направляющая должна быть просто новой направляющей.

Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = 
      "MyFolder", "MyFolder", "{C990590A-798B-41BB-9A2A-50D28037BA2A}"
   ProjectSection(SolutionItems) = preProject
        MyFolder\some.txt = PysicalPath\a.txt
   EndProjectSection
EndProject

См. Где находятся папки с решениями Visual Studio 2013? для получения дополнительной информации.

Другие вопросы по тегам