.NET Core:如何从命令行创建解决方案文件夹

9
我正在组织一个新项目,我希望尽可能多地使用命令行创建它。
我喜欢将我的测试项目放入解决方案文件夹中。然而,命令dotnet sln add似乎有些受限制。它的参数列表似乎只包含要添加的项目文件列表。
在添加新创建的项目时(在我的情况下是测试项目,但问题更普遍),是否有一种指定解决方案文件夹(而不是物理文件夹)的方法?

解决方案文件夹与物理文件夹有何区别? - Mike
https://blogs.msdn.microsoft.com/zainnab/2010/03/27/using-solution-folders/ - Rob Lyndon
我对在.net-core中是否可能存在怀疑。所有这些逻辑结构似乎都存储在Visual Studio的.suo文件中。物理文件夹有什么问题吗? - Mike
可以使用Visual Studio实现。我只是想知道使用命令行脚本是否容易实现。 - Rob Lyndon
4个回答

11

从这个Microsoft Docs

dotnet sln yoursolution.sln add pathofyourproject\yourprojectfile.csproj --solution-folder solutionfoldername
如果解决方案文件夹不存在,此命令将创建一个新的解决方案文件夹。在其他情况下,该命令将向您的解决方案文件夹中添加一个项目。

8

我使用 .Net Core 2.2 成功完成了这个任务,首先需要将一个新的项目添加到 Tests\UnitTests\UnitTests.csproj 文件夹中,然后从解决方案根目录运行 dotnet sln add 命令。

初始文件夹结构

Initial Folder Structure

Tests\UnitTests 中添加 UnitTest.csproj

从包含 TestMvcCore2.sln 的文件夹中运行

dotnet new classlib -o .\Tests\UnitTests -n UnitTests

UnitTest.csproj 添加到 TestMvcCore2.sln

从包含 TestMvcCore2.sln 的文件夹中运行

dotnet sln add .\TestMvcCore2.sln  .\Tests\UnitTests\UnitTests.csproj

创建一个名为“Tests”的Visual Studio解决方案文件,并在其中添加代码。请参考以下截图: enter image description here

6

目前还不可能,您需要创建物理结构文件夹,就像解决方案结构文件夹一样。

dotnet new <typeproj> --output "physical/domain" --name "domain"

dotnet new <typeproj> --output "physical/service" --name "service"

打开Visual Studio后,创建一个名为“physical” 的解决方案文件夹,并将之前准备好的项目添加到其中。


1
我也在想这是不是一个好主意。逻辑文件夹是否与物理文件结构不相对应,能否增加更多的价值?最终,我决定使用物理文件夹而不是解决方案文件夹。 - Rob Lyndon

2
Microsoft Docs所述,如果您想创建新的解决方案,必须编写dotnet new sln。此命令将在当前目录中创建一个名为当前目录名称的解决方案文件。此外,您可以通过dotnet new sln -o <SOLUTION_NAME>指定输出解决方案文件的名称。这也会创建一个名为您指定名称的文件夹。要将项目添加到此解决方案,请在命令提示符中输入:dotnet sln <YOUR_SOLUTION_NAME> add <PROJECT_YOU_WANT_TO_ADD> <PROJECT_YOU_WANT_TO_ADD> <PROJECT_YOU_WANT_TO_ADD> ...这将把您指定的所有项目及其文件夹添加到您指定的解决方案中。

感谢提供有用的信息!顺便说一句,我认为这不是原帖作者所问的。我想他在询问 Visual Studio IDE 中可以容纳多个项目的文件夹。 - w00ngy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接