首页 > 解决方案 > 使用 Visual Studio 将文件结构更改为 GitHub 项目使用的通用文件结构(src 文件夹中的解决方案和项目)

问题描述

在 GitHub 上的大多数项目中看到的常见结构如下。一个很好的例子是Json.Net 存储库。我想使用 Visual Studio 2019 实现同样的目标:

MyProject
├── Doc
│   ├── txt/md/... files
├── Src
│   ├── .sln
│        ├── Project1 (eg. netstandard lib)
│        └── Project2 (eg. tests)
├── .gitignore
├── LICENSE.md
└── Readme.md

SO ( 1 , 2 )上的类似问题将“项目”移动到文件夹而不是“解决方案”中。请注意,在此结构中,解决方案也在“Src”文件夹中。

我已经调整了一些建议,例如切换到文件夹视图,这样我就成功地将整个 .sln 和项目文件夹移动到“src”文件夹中,但问题是 Visual Studio 在根目录下创建了一个新的解决方案。最终的结构变成了这样:

MyProject
├── Doc
│   ├── txt/md/... files
├── Src
│   ├── .sln 
│        ├── Project1 (eg. netstandard lib)
│        └── Project2 (eg. tests)
├── .gitignore
├── LICENSE.md
├── Readme.md
└── Extra_solution.sln <-- this is the problem

我打开移动的解决方案后,立即创建了下面屏幕截图中的红色圆圈解决方案:

截屏

标签: visual-studiovisual-studio-2019

解决方案


所以你想要的结构很常见,正如 David Fowler 在这里概述的那样: https ://gist.github.com/davidfowl/ed7564297c61fe9ab814 。请注意,该.sln文件位于根目录下,我发现这更为常见。

在 Visual Studio 中创建它时我所做的是卸载项目(通过右键单击项目),然后移动它,然后将项目重新添加到解决方案中。

还有另一种方法,那就是通过命令行执行所有操作:

mkdir MyProject
cd MyProject
dotnet new sln
dotnet new classlib -o src/Project1
dotnet new mstest -o src/Project2
dotnet sln add src/Project1
dotnet sln add src/Project2

推荐阅读