我需要知道项目中的实际输出文件名完整路径。 我使用microsoft.build.evaluation.project打开一个具有正确属性的项目,我尝试使用属性TargetPath,TargetDir,TargetFileName,但我找不到一致的属性来给我带路径的输出文件名。 在某些项目中它起作用,而在某些项目中它不起作用。我在csproj文件和vcxproj文件上工作。
答案 0 :(得分:2)
输出路径与项目文件夹相关。您可以通过属性OutputPath
从项目文件中获取其值(假设project
是Microsoft.Build.Evaluation.Project
的实例)
var outputPath = project.GetPropertyValue("OutputPath")
然后,您可以使用Path.Combine来连接输出路径和项目文件夹
var fullpath = Path.Combine(projectDirectory, outputPath);
答案 1 :(得分:1)
除了Ask的回答:
如果您需要为当前配置(例如Release)之外的其他配置获取OutputPath,则应该执行下一步:
project.SetProperty("Configuration", "Release");
project.ReevaluateIfNecessary();
var outputPath = project.GetPropertyValue("OutputPath");
或
ProjectCollection.GlobalProjectCollection.SetGlobalProperty("Configuration", "Release");
load project
var outputPath = project.GetPropertyValue("OutputPath");