2017-11-28 11 views
0

내가 모든 RESX 프로젝트에서 사용할 수있는 파일 및 경로의 목록을하려는 프로젝트 프로그래밍의 모든 RESX 파일의 목록을 가져옵니다 메모장으로 csproj 파일을 열면 프로젝트 트리 계층을 반영하는 XML이 모든 resx 파일을 포함하고 있습니다. C#에서이 데이터 프로그래밍 기능을 통과시킬 수 있습니까? 당신은 단지 프로젝트에 포함 된 resx 파일을 고려할 경우</p> <p>언제를 (System.IO가 아니라) 모든 .NET 개체에 의해,

+0

csproj 파일 또는 컴파일 된 어셈블리를 열어 해당 정보를 가져 오시겠습니까? –

+0

프로젝트 게시 후 파일 목록을 가져와야하며 resx는 포함 리소스로 구성됩니다. – gnazim

+0

사실, 사전으로로드하려면 resx 인 모든 클래스 목록이 필요합니다. – gnazim

답변

0

그것은, 따라, 당신은 (기본적으로 XML 파일에 지나지 않는다)을 csproj 파일을 구문 분석하고 resx 참조를 검색하기 위해 그것들을 통과해야합니다.

는이 경우, 단지 솔루션 폴더 내의 모든 csproj를로드

var projectFiles = Directory.GetFiles(solutionDir,"*.*",SearchOption.AllDirectories).Where(f => Path.GetExtension(f) == ".csproj"); 

를하고 잔인한 구문 분석에 대한 이동합니다. 당신은 단지 그들이 프로젝트에 여부를 포함할지 여부를 고려하지 않고, 모든 resx 파일을 선택하려면

: 또한 사용하여 csproj 파일을 구문 분석 할 수

var resxFiles = Directory.GetFiles(solutionDir,"*.*",SearchOption.AllDirectories).Where(f => Path.GetExtension(f) == ".resx"); 

MSBuild API (당신은을 참조해야 Microsoft.Build.Engine assembly) :

Project project = new Project(); 
project.Load(projectFile);