2017-01-03 23 views
1

Скажем, у меня есть решение, которое структурировано как так:Как вручную добавить папки Solution в файл .sln?

|__TopLevelFolder 
    |___ModuleFolder 
     |____ProjectFile 
     |____TestProjectFile 

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

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

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

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

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

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

Тогда в «preSolution» раздел I добавить строку, которая помещает 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 

См. Where are Visual Studio 2013 Solution Folders? для получения дополнительной информации.

+0

Вы совершенно правы. Я установил его вместо csproj guid вместо одного для папок (или, по крайней мере, так я его понимаю). Большое спасибо! – Andrew

 Смежные вопросы

  • Нет связанных вопросов^_^