将Visual Studio .NET解决方案适配至GNU/Linux环境
在Linux终端处理多项目.NET解决方案的方法
直接用dotnet CLI搞定,无需逐个编译
.NET自带的CLI完全支持多项目解决方案,不用折腾Make或cmake-converter,直接用原生命令就能完成编译和运行:
- 编译整个解决方案:切换到sln文件所在目录,执行:
该命令会自动识别子项目依赖顺序,一次性完成所有项目编译,效果和Visual Studio里的"生成解决方案"一致。dotnet build YourSolution.sln - 运行主项目:找到你要启动的控制台/API项目,进入其目录执行:
也可以直接在sln目录指定项目路径:dotnet rundotnet run --project ./Path/To/Your/MainProject.csproj - 编译并一键运行:如果想简化步骤,可执行:
(默认会先编译,无需额外加参数)dotnet run --project ./Path/To/Your/MainProject.csproj
cmake-converter报错的原因
cmake-converter对.NET项目的支持基本无效,因为.NET采用MSBuild格式(csproj/vbproj),和CMake的项目模型完全不兼容,工具识别不了.NET项目类型是正常情况,没必要在转换上浪费时间。
若需用Make自动化封装
如果确实需要用Make来统一命令,直接写个简单的Makefile封装dotnet命令即可,无需转换sln:
在sln目录创建Makefile,内容示例:
# 替换为你的主项目路径 MAIN_PROJECT = ./src/YourMainProject/YourMainProject.csproj SOLUTION = YourSolution.sln build: dotnet build $(SOLUTION) run: dotnet run --project $(MAIN_PROJECT) clean: dotnet clean $(SOLUTION) # 默认执行编译操作 .DEFAULT_GOAL := build
之后在终端执行:
make:编译整个解决方案make run:启动主项目make clean:清理编译产物
内容的提问来源于stack exchange,提问作者Francisco de Javier
相关产品推荐
相关产品推荐

