You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET Core 2类库项目中用C#读取.csproj的PropertyGroup值

在.NET Core 2类库中读取.csproj的元素值

嘿,要在.NET Core 2类库项目里获取.csproj文件中下元素的值,Microsoft.Build命名空间下的类就是你的最佳选择——这是官方专门用来处理MSBuild项目文件的工具,完全适配.NET Core环境,不需要依赖.NET Framework的任何组件。

步骤说明:

  1. 添加NuGet包引用
    因为.NET Core 2类库默认不会包含MSBuild相关的程序集,你需要先安装Microsoft.Build NuGet包。可以通过NuGet包管理器或者命令行安装:

    Install-Package Microsoft.Build -Version 15.9.20
    

    (注:选择和你.NET Core 2版本兼容的包版本,15.x系列是适配.NET Core 2的稳定版本)

  2. 编写读取代码
    用Microsoft.Build.Evaluation.Project类加载并解析.csproj文件,然后直接获取指定属性的值:

    using Microsoft.Build.Evaluation;
    using System.IO;
    
    public class CsprojReader
    {
        public string GetLocationValue(string csprojFilePath)
        {
            // 转换为绝对路径避免相对路径问题
            string absolutePath = Path.GetFullPath(csprojFilePath);
            
            // 加载项目文件,using语句确保资源释放
            using (Project project = new Project(absolutePath))
            {
                // 直接通过属性名获取值,MSBuild会自动处理<PropertyGroup>的合并逻辑
                return project.GetPropertyValue("Location");
            }
        }
    }
    

关键细节:

  • Project类会完整解析整个.csproj的MSBuild结构,不管在哪个节点下,GetPropertyValue都能正确拿到它的值(如果多个定义了同一个属性,会返回优先级最高的那个,符合MSBuild的默认规则)。
  • 这个方案完全基于.NET Core原生API,没有任何.NET Framework的依赖,完美匹配你的需求。

内容的提问来源于stack exchange,提问作者walter_dl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:34:03