Как вручную добавить папки решений в файл.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? для получения дополнительной информации.