2017-11-28 10 views
0

は私がすべてのRESXのプロジェクトで利用可能なファイルとそのパスのリストを取得したいプロジェクトのプログラマビリティのすべてのRESXファイルのリストを取得します。メモ帳でcsprojファイルを開くと、すべてのresxファイルがプロジェクトツリー階層に反映されたxmlが表示されます C#でこのデータプログラマビリティを通過できますか?</p> <p>とき、私を(System.IOではない)任意の.NETエンティティによって、

+0

csprojファイルまたはコンパイルされたアセンブリを開いて情報を取得しますか? –

+0

プロジェクトの公開後にファイルリストを取得しなければならず、resxは組み込みリソースとして設定されています。 – gnazim

+0

実際、辞書として読み込むためには、resxであるすべてのクラスのリストが必要です。 – gnazim

答えて

0

それはあなたがプロジェクトに含まれているだけresxファイルを考慮したい場合、あなたは(基本的にXMLファイルに過ぎません)csprojファイルを解析し、resxの参照を取得するためにそれらを横断する必要があり、依存しています。その場合

は、単にソリューションフォルダ内のすべてのcsprojをロード:

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

と残忍な解析のために行きます。

あなたはちょうど彼らがプロジェクトに含まれているか否かを考慮せずに、すべてのresxファイルを選択したい場合:

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

また、(あなたが参照する必要がMSBuild APIを使用してcsprojファイルを解析できMicrosoft.Build.Engineアセンブリ):

Project project = new Project(); 
project.Load(projectFile); 
関連する問題

 関連する問題