프로젝트에서 실제 출력 파일 이름 전체 경로를 알아야합니다. microsoft.build.evaluation.project를 사용하여 올바른 속성으로 프로젝트를 열고 TargetPath, TargetDir, TargetFileName 속성을 사용해 보았습니다. 그러나 출력 파일 이름에 경로를 제공하는 일관된 속성을 찾을 수 없습니다. . 일부 프로젝트에서는 작동하지만 일부에서는 작동하지 않습니다. 나는 csproj 파일과 vcxproj 파일 모두에서 작업한다.C에서 microsoft.build.evaluation.project를 사용하여 실제 프로젝트 출력을 얻는 방법 #
1
A
답변
2
출력 경로는 프로젝트 폴더와 관련이 있습니다. 당신은 재산 OutputPath
를 통해 프로젝트 파일에서 값을 얻을 수 있습니다
var outputPath = project.GetPropertyValue("OutputPath")
는 그런 다음
var fullpath = Path.Combine(projectDirectory, outputPath);
1
에서 당신의 출력 경로 및 프로젝트 폴더를 연결하는 Path.Combine를 사용할 수 있습니다 (project
을 가정 Microsoft.Build.Evaluation.Project
의 인스턴스) 추가 답변 :
현재 경로 (예 : 릴리스)보다 다른 설정을 위해 OutputPath를 얻으려면 다음을 수행해야합니다.
project.SetProperty("Configuration", "Release");
project.ReevaluateIfNecessary();
var outputPath = project.GetPropertyValue("OutputPath");
또는
ProjectCollection.GlobalProjectCollection.SetGlobalProperty("Configuration", "Release");
load project
var outputPath = project.GetPropertyValue("OutputPath");