問題介紹
? ? ? ? 經(jīng)常逛github找優(yōu)秀的.NET項(xiàng)目看熏挎,看到github上的項(xiàng)目的層級(jí)有src test,sln放在外層管宵。如下圖:
?發(fā)現(xiàn)自己再Visaul Studio新建的項(xiàng)目即使添加了src和test芭析,然后基于文件夾下新建項(xiàng)目衬浑,物理路徑上也不是這樣的結(jié)構(gòu)。如圖
?物理路徑下依然和sln是平級(jí)狀態(tài)放刨。
解決方案
通過dotnet CLI
全程新建項(xiàng)目通過dotnet cli來新建工秩,可以保持類似于github的整體目錄,在一個(gè)空目錄
dotnetnew sln
dotnet newclasslib -o src/YourName.Domain
dotnet newclasslib -o tests/YourName.Domain.UnitTests
dotnet sln add src/YourName.Domain
dotnet sln add tests/YourName.Domain.UnitTests
通過此方法新建,添加sln引用进统,可以做到物理路徑保持src助币。
通過創(chuàng)建項(xiàng)目,手動(dòng)拷貝到物理路徑下src螟碎,然后通過Visaul Studio添加現(xiàn)有項(xiàng)目
使用上邊的截圖示例眉菱,Api文件夾是我新建的,但是并沒有在src下掉分,手動(dòng)拷貝到src下俭缓。然后打開Visaul Studio在src目錄下添加現(xiàn)有項(xiàng)目,
總結(jié)
通過Visaul Studio直接在解決方案添加新建項(xiàng)目會(huì)產(chǎn)生一個(gè)虛擬目錄酥郭,導(dǎo)致物理路徑不符华坦。通過dotnet CLi或者手動(dòng)拷貝,添加現(xiàn)有項(xiàng)目可以解決此問題不从。