gpt4 book ai didi

c# - 如何使用 Roslyn MSBuildWorkspace 查找 C# 项目的 'obj' 目录?

转载 作者:太空宇宙 更新时间:2023-11-03 23:02:06 26 4
gpt4 key购买 nike

我正在使用 Roslyn 编译一个包含多个项目的 C# 解决方案,使用 MsBuildWorkspace

很容易找到Project 的输出文件,为此我可以使用OutputFilePath 属性。

但我找不到找到“中间”目录的方法(通常这是“obj”目录,但这可以使用 MSBuild 属性 BaseIntermediateOutputPath 进行更改csproj 文件中的 IntermediateOutputPath

有没有人知道如何做到这一点?

最佳答案

您可以使用 Microsoft.Build.dll 中的 Microsoft.Build.Evaluation.Project 并获取项目属性:

void foo(String projectPath, IDictionary<String, String> globalProperties, String toolsVersion)
{
Project project = new Project(projectPath, globalProperties, toolsVersion);
String baseIntermediateOutputPath = GetProjectProperty(project, "BaseIntermediateOutputPath");
String intermediateOutputPath = GetProjectProperty(project, "IntermediateOutputPath");
// ....
}

static String GetProjectProperty(Microsoft.Build.Evaluation.Project project, String propertyName)
{
return project.Properties
.FirstOrDefault(prop => String.Equals(prop.Name, propertyName, StringComparison.OrdinalIgnoreCase))
?.EvaluatedValue;
}

关于c# - 如何使用 Roslyn MSBuildWorkspace 查找 C# 项目的 'obj' 目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42738463/

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