假设我的解决方案结构如下:
|__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"我添加了一行,将NewModuleFolder放在TopLevelFolder下面,以及NewModuleFolder下面的TestProject:
GlobalSection(NestedProjects) = preSolution
{NewModuleGUID} = {TopLevelGUID}
{TestProjectGUID} = {NewModuleGUID}
...
EndGlobalSection
这正是我的解决方案中所有其他文件夹和项目的工作原理(相信我,我需要进行双重和三重检查以及尝试切换GUID以确保)。
关于如何使这项工作或我做错的任何想法(或者考虑到我创建一个自动生成器,我应该以不同的方式这样做)?
谢谢!
答案 0 :(得分: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