VisualStudio如何在解决⽅案⾥添加真实的⽂件夹⽽不是虚的解
决⽅案⽂件夹
建议直接跳转到,因为前⾯都是我的废话。
问题
作为⼀只开发经验不⾜半年的新⼿开发者,新⼿.NET Core程序猿,我在学习过程中很难完全依赖官⽅⽂档,博客和Stackoverflow等⽹站来学习,有时候需要在⽹络上⼀些免费的和付费的视频教程。最近我购买了肖伟宇⽼师的《.NET Core开发实战》课程。我还没有看视频,只粗略地浏览了⼀下肖⽼师放在GitHub上的这个视频教程的代码框架。
在看项⽬结构的时候我发现肖⽼师是使⽤的⽂件夹来划分项⽬结构,⽽不是像我和我的公司⼀样直接在解决⽅案⾥添加项⽬,添加库。我⼜上GitHub看了⼀些其他⼈的项⽬结构,发现他们⼀般会有⼀个test⽂件夹,⾥⾯放的是测试代码,⼀个src ⽂件夹,放的是项⽬代码,项⽬代码中还会分层,三层架构,DDD,微服务之类的。
我公司的项⽬从来不屑于(没⼈知道怎样)写测试代码,⼀些新⼿教程和官⽅⽂档也没有提到这样来划分项⽬结构。所以我初次看到这样的操作,感觉⾮常不错,⾮常清晰,让⼈类更容易理解。
然⽽我也想这样划分项⽬的时候,遇到⼀个问题。我直接在Visual Studio 2019中右键添加⽂件夹,结果只有“新建解决⽅案⽂件夹”这个选项。选择这个选项,添加的⽂件夹只能在VS中打开解决⽅案后才能看得见,在windows资源管理器中是看不见的。
我只能选择在windows资源管理器中新建真正的⽂件夹,然后想办法把它添加到解决⽅案中,再在这个⽂件夹下添加库或者项⽬,结果发现⾏不通。
例如我新建⼀个叫Demo的控制台项⽬,在项⽬⽂件夹下新建⼀个src⽂件夹,新建⼀个test⽂件夹,把与sln⽂件在同⼀个⽬录的Demo⽂件夹拖到src中。现在的⽬录结构如图:
mysql下载的vs库放在那个文件里Demo在src下,sln⽂件与src和test⽂件夹在同⼀级⽬录下。
从VS2019中看,已经这样了:
右键把这个已卸载的项⽬移除,然后右键解决⽅案,添加-已有项⽬,选择到Demo.csproj,添加了项⽬后,发现在VS中是这样的:
这样从资源管理器⾥看是直观了,从VS⾥看就不直观了。⽩搞。
⽹上很多博客写了让我们点击VS解决⽅案资源管理器上⽅菜单栏⾥的显⽰所有⽂件,然后就能看到所有⽂件,然后再把这些⽂件添加到项⽬⾥。我试了,没⽤,bin和obj这两个⽂件夹倒是出来了:
点击这个图标可以切换到⽂件夹视图,看起来是挺好看的,但不好⽤。这个时候右键解决⽅案sln⽂件,都不能选择重新⽣成解决⽅案之类的操作。
查阅了国内外各种资料,包括Stackoverflow,也没到答案。甚⾄Stackoverflow中的这个问题下,很多⼈都说⽆解。很少碰到这种棘⼿的问题,在dotnet开发的QQ⾥问,也没⼈鸟我。
解决⽅法
我在bing这个问题的时候,在⼀堆⽆⽤的博客和回答中发现了这个东西:
这是⼀个vs插件,它的功能如下gif图所⽰:
感谢插件作者Cecilia Wirén,这个东西似乎⼀定程度上满⾜了我的需求。赶紧下载安装试⼀下。
可以看到这个插件的功能是把已有的真正的⽂件夹添加到解决⽅案中。
安装完之后,把⾃⼰建的src和test删掉,只留下⼀个Demo.sln空解决⽅案。像下⾯这样:
双击打开这个解决⽅案,是这样:
把这个Demo也右键移除掉。右击解决⽅案-添加,发现有这么⼀项:
点击这⼀项,到我们解决⽅案所在的⽬录,右键新建⼀个src⽂件夹,选中这个我们刚建好的src⽂件夹,点击下⽅“确定”按钮:
结果:
完美,现在windows资源管理器⾥也有src⽂件夹,Demo.sln这个解决⽅案⾥也有src⽂件夹,实现了我们的需求。
尝试⽤这种⽅式在VS中在src下再新建⼀个Console⽂件夹。注意,添加Console⽂件夹的时候,还是要右击解决⽅案,不能右击src,右击src是不到这⼀项的。可以右击解决⽅案到这个添加选项,然后在弹出的对话框中到src⽂件夹,在这个⽂件夹下新建Console⽂件夹,选中,点击确定。
新建好的⽂件结构在VS的解决⽅案资源管理器中是这样的:
但在windows资源管理器中真正的结构是这样的:
可以看到Console确实是在src下的。怎么解决这个问题?直接在VS中把Console拖到src⾥即可:
再在这个Console⽂件夹下添加⼀个叫Demo的控制台项⽬,这个时候可以直接右键Console-添加-新建项⽬。(注意,添加项⽬时,下⾯这个位置要选到Console下,否则会出现⼀个问题:在VS中新项⽬在Console下,但在Windows资源管理器中,新项⽬在与src同级的⽬录中):
添加完之后,在Windows资源管理器中的⽬录结构是这样的:
在VS中是这样的:
在Demo这个控制台项⽬中新建⽂件夹时,可以直接在VS中右键这个项⽬-添加-新建⽂件夹。在本地,新建的⽂件夹也会出现在Demo控制台的⽬录中。这样是没有问题的,不需要再拖动。
终于曲折地解决了问题。虽然操作还是很⿇烦,但终究解决了这个问题。这个步骤操作熟练了就可以了。
我觉得这个⽅法依然不够聪明,也不知道那些⼤佬是怎么操作的,如果有知道的朋友,请在评论区分享给我,谢谢⼤家。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。