2010-12-15 13 views
1

C#プロジェクトから特定のファイルを大量に除外する方法を知っている人はいますか?私はそれらを削除したくない、私は自分の個々のプロパティを隠しファイルに設定するか、拡張子.excludeでファイル名を変更できることを知っているが、これを行うにはVisual Studioの方法であるかどうかを知りたい。特定の名前を持ち、C#で除外するすべてのファイルを選択する

たとえば、ファイル名がimg.jpegの1000個のディレクトリがある場合、そのファイルをすべてのディレクトリから除外します。

ありがとうございます!

答えて

0

(実際のファイルを削除せずに)プロジェクトから削除したい場合は、.csprojファイルをメモ帳よりも検索や置き換えが可能なエディタで開き(少なくともワイルドカード)、エントリを削除しますこれらのファイルのために。 .csprojファイルを保存し、Visual Studioで再度開きます。

注:ビジュアルスタジオは、これにはかなり良いエディタです。これには、複数のファイルを高速に検索する&もあります。 .csprojをダブルクリックするのではなく、テキストファイルとして開くだけです。

+0

これは私のPowerShellスクリプトよりもはるかに優れているようです:-) – Shoban

0

プロジェクトからファイルを除外するには、アプリケーションまたはVisual Studioプラグインを作成する必要があります。

  1. 再帰的
  2. オープンXmlDocumentオブジェクト
  3. XPathを使用(たとえば、XmlDocumentオブジェクトにロードすることにより、cprojファイルをあなたのコードツリー内のすべての.csprojファイルを検索:個人的に私はちょうど次のようにしますアプリを作成します.SelectSingleNode()/ SelectNodes())を使用して、該当するファイルのタグを検索します。
  4. だから、このようなセクションになるだろうノードを削除し、XmlDocument.Save

を使用してディスクへ出て、ファイルを保存します。

<ItemGroup> 
    <EmbeddedResource Include="licenses.licx" /> 
    <EmbeddedResource Include="img.jpeg" /> 
</ItemGroup> 

は次のようになります。

<ItemGroup> 
    <EmbeddedResource Include="licenses.licx" /> 
</ItemGroup> 

ノードを見つけるXPathコードのサンプル:

XmlDocument csprojDoc; // this is the document you loaded your csproj XML into 
XmlNamespaceManager xnm; // you'll need to build one of these because csproj files use namspaces in the XML 

XmlNode excludeNode = 
    csprojDoc.SelectSingleNode("//ns:ItemGroup/ns:EmbeddedResource[@Include='img.jpeg']", xnm); 

excludeNode.ParentNode.ChildNodes.Remove(excludeNode); 
関連する問題