.NET 5.0:在多项目解决方案中构建项目
Posted
技术标签:
【中文标题】.NET 5.0:在多项目解决方案中构建项目【英文标题】:.NET 5.0: Build a project in a multi-project solution 【发布时间】:2021-05-25 23:31:40 【问题描述】:我的解决方案包含多个项目(例如,.NET 控制台应用程序、ASP.NET Web 应用程序、Python 脚本、单元测试等)。有时,我有兴趣在不编译其他项目的情况下构建特定项目。例如,构建控制台应用程序而不编译 Web 应用程序。
我尝试了以下方法:
dotnet build .\console_app.csproj
但是,这会构建解决方案中的所有项目。我错过了什么吗?
【问题讨论】:
它不应该构建所有东西——它应该只构建那个项目和它依赖的其他项目(传递性地)。例如,如果有另一个console_app
不依赖(甚至是可传递的)当前已损坏的项目,那么构建 console_app.csproj
不应该因此而失败。
如果你认为你有一个反例,提供一个可重复的例子会很有帮助。
@JonSkeet 谢谢。我的控制台应用程序依赖于解决方案中的其他 .NET 项目,因此所有项目都是构建的。我相信我这边的依赖架构不好。
【参考方案1】:
选项 1:Temporarily
禁用这些项目
您可以暂时从构建配置中删除其他人,请参阅MSDN,
暂时从活动解决方案中删除项目
配置在菜单栏,选择Build > Configuration Manager
。
在Project contexts table
中,找到你想要的项目
从构建中排除。
在项目的Build column
中,清除复选框。
选择Close button
,然后重建解决方案。您可能必须退出并重新启动 VS。
选项 2:创建新的构建配置
我喜欢/推荐这个,因为您不会丢失旧版本,只需单击按钮 its very easy to SWITCH between the two Build/Solution Configurations。
创建排除项目的解决方案配置
在菜单栏上,选择Build > Configuration Manager
。
在Active solution configuration list
中,选择<New>
。
在Name box
中,输入解决方案配置的名称。
在 Copy settings from 列表中,选择新配置要基于的解决方案配置(例如,Debug
),然后选择 OK 按钮。
在Configuration Manager
对话框中,清除要排除的项目的“构建”列中的复选框,然后选择“关闭”按钮。
在Standard toolbar
上,验证新的解决方案配置是解决方案配置框中的活动配置。
在菜单栏上,选择Build > Rebuild Solution
。
【讨论】:
以上是关于.NET 5.0:在多项目解决方案中构建项目的主要内容,如果未能解决你的问题,请参考以下文章
Gradle / javacard插件是否支持在多项目gradle构建中构建两个applet依赖项?
构建 .NET 5.0 项目 Azure DevOps 管道