2014-10-01 12 views
1

프로젝트에서 실제 출력 파일 이름 전체 경로를 알아야합니다. microsoft.build.evaluation.project를 사용하여 올바른 속성으로 프로젝트를 열고 TargetPath, TargetDir, TargetFileName 속성을 사용해 보았습니다. 그러나 출력 파일 이름에 경로를 제공하는 일관된 속성을 찾을 수 없습니다. . 일부 프로젝트에서는 작동하지만 일부에서는 작동하지 않습니다. 나는 csproj 파일과 vcxproj 파일 모두에서 작업한다.C에서 microsoft.build.evaluation.project를 사용하여 실제 프로젝트 출력을 얻는 방법 #

답변

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");