gpt4 book ai didi

c# - .net Core 解析csproj文件到对象

转载 作者:行者123 更新时间:2023-12-05 02:14:14 27 4
gpt4 key购买 nike

问题 - 我们可以通过某些方式解析 csproj 文件,但大部分信息不在文件中,而是默认情况下或受其他属性影响。

我想处理 csproj 文件和解决方案 - 获取项目依赖项、获取属性和项目(例如“TargetFramework”、编译文件等)

TargetFramework 可以是具有值的标记,或者是具有解析为“TargetFramework”的多值的“TargetFrameworks”标记。

旧的解决方案 - MSBuild 提供一个 microsoft.build.evaluation library使用csproj文件,但是这个库编译为net471,当我们在netcoreapp中使用它时会导致错误。

.net 核心项目中问题的解决方案是什么?

最佳答案

对于 .Net Core Microsoft.Build NuGet 包的工作方式如下:

var projectRootElement = ProjectRootElement.Open(csprojPath);
projectRootElement.AddProperty("Version", "3.4.5");
projectRootElement.Save();

如果版本存在,它会覆盖它。如果不存在,则添加新属性名称为“Version”,值为“3.4.5”。

您还可以获得.csproj中定义的所有属性

var projectRootElement = ProjectRootElement.Open(csprojPath);
foreach (var property in projectRootElement.Properties)
{
Console.WriteLine($"Name: {property.Name} - Value: {property.Value}");
}

在 .NetCore 5.0 中测试

关于c# - .net Core 解析csproj文件到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53810300/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com