如何手动将解决方案文件夹添加到 .sln 文件?
How do I manually add Solution folders to a .sln file?
假设我有一个结构如下的解决方案:
|__TopLevelFolder
|___ModuleFolder
|____ProjectFile
|____TestProjectFile
我想在"TopLevel"下再创建一个"ModuleFolder"并添加其对应的工程和测试工程文件。但是,出于我的目的,我必须手动修改 .sln 文件以添加它们(我这样做是作为 yeoman 生成器的一部分,这意味着我不能像往常一样在 VS 中这样做)。
我的问题是,当我修改 .sln 文件时,我的文件夹显示为不可用项目,当我尝试重新加载它时,加载失败并显示 "The project file or web cannot be found." 这就是我的情况在 .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 生成器,我应该以不同的方式做这件事)?
谢谢!!
项目类型的 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?。
假设我有一个结构如下的解决方案:
|__TopLevelFolder
|___ModuleFolder
|____ProjectFile
|____TestProjectFile
我想在"TopLevel"下再创建一个"ModuleFolder"并添加其对应的工程和测试工程文件。但是,出于我的目的,我必须手动修改 .sln 文件以添加它们(我这样做是作为 yeoman 生成器的一部分,这意味着我不能像往常一样在 VS 中这样做)。
我的问题是,当我修改 .sln 文件时,我的文件夹显示为不可用项目,当我尝试重新加载它时,加载失败并显示 "The project file or web cannot be found." 这就是我的情况在 .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 生成器,我应该以不同的方式做这件事)?
谢谢!!
项目类型的 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?。