2017-01-03 280 views
1

說我有一個結構化的,像這樣的解決方案:如何手動將解決方案文件夾添加到.sln文件?

|__TopLevelFolder 
    |___ModuleFolder 
     |____ProjectFile 
     |____TestProjectFile 

我想創造另一個「ModuleFolder」,「頂層」下,並添加其相應的項目和測試項目文件。然而,爲了我的目的,我必須手動修改.sln文件來添加它們(我這樣做是作爲yeoman生成器的一部分,這意味着我不能像VS一樣在VS中執行此操作)。

我的問題是,當我修改.sln文件時,我的文件夾顯示爲不可用的項目,當我嘗試重新加載它時,加載失敗,並顯示「無法找到項目文件或Web」。以下是我在.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以確保)。

任何想法如何使這項工作或我做錯了什麼(或不同的方式,我應該這樣做考慮我創建一個yeoman發電機)?

謝謝!

回答

1

項目類型的Guid必須是「2150E333-8FDC-42A3-9474-1A3956D46DE8」,第二個guid應該只是新的guid。

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

相關問題