Мне нужно знать фактическое имя файла полного файла в проекте. Я использую microsoft.build.evaluation.project, чтобы открыть проект с правильными свойствами, и я попытался использовать свойства TargetPath, TargetDir, TargetFileName, но я не могу найти согласованное свойство, чтобы дать мне имя выходного файла с помощью пути , В некоторых проектах это работает, а в некоторых - нет. Я работаю как с файлами csproj, так и с файлами vcxproj.Как получить фактический выход проекта с помощью microsoft.build.evaluation.project в C#
1
A
ответ
2
Выходной путь связан с папкой проекта. Вы можете получить его значение из файла проекта через свойство OutputPath
(предположим project
является экземпляром Microsoft.Build.Evaluation.Project
)
var outputPath = project.GetPropertyValue("OutputPath")
Затем вы можете использовать Path.Combine конкатенировать свой путь вывода и папку проекта
var fullpath = Path.Combine(projectDirectory, outputPath);
1
В дополнение к ответу Ask:
Если вам нужно получить OutputPath для какой-либо другой конфигурации, кроме текущей (например, Release Release), вы должны сделать следующее:
project.SetProperty("Configuration", "Release");
project.ReevaluateIfNecessary();
var outputPath = project.GetPropertyValue("OutputPath");
или
ProjectCollection.GlobalProjectCollection.SetGlobalProperty("Configuration", "Release");
load project
var outputPath = project.GetPropertyValue("OutputPath");