1

コードを介して特定の文字列の csproj ファイルを検索したい。どうすればできますか?

ありがとう。

4

3 に答える 3

1

単なるxmlテキストファイルです。それを読むために任意のxmlまたはテキストファイル技術を使用してください。

例:C#

string textToFind="someText";
string text = File.ReadAllLines("xxx.csproj");
if(text.Contains(textToFind)) Console.WriteLine("found it");
于 2009-10-06T10:11:36.217 に答える
1

.csproj ファイルは XML ドキュメントであるため、XPath はニーズに適した手段のように思えます。ここで例を含む紹介を見つけることができます。. XPath は、.NET を含む幅広いプラットフォームでサポートされています (例はこちら)。

これはあなたのニーズに対してやり過ぎかもしれません。その場合、正規表現がまさにあなたが探しているものかもしれません (そこにはたくさんのチュートリアルがあります)。

何を達成しようとしているのですか?

.NET では、次のように記述できます。

XPathDocument Doc = new XPathDocument("foo.csproj);
XPathNavigator navigator = Doc.CreateNavigator();
XmlNamespaceManager namespaceManager = new XmlNamespaceManager(navigator.NameTable);
namespaceManager.AddNamespace("pr", "http://schemas.microsoft.com/developer/msbuild/2003");
XPathNodeIterator iterator = navigator.Select(@"pr:Project/pr:ItemGroup/pr:Compile[@Include='AssemblyInfo.cs']", namespaceManager);

while (iterator.MoveNext())
{
   // Do something interesting
}
于 2009-10-06T10:09:53.520 に答える
0

これを試して:

using(StreamReader reader = new StreamReader("Project1.csproj"))
{
   string criteria = "sample";
   string line = "";
   int ln = 0;
   while((line=reader.readLine()) != null)
   {
       int col = line.indexOf(criteria);
       if(col != -1)
          Console.WriteLine(criteria + " is found in line: " + ln + " col: " + col);
       ln++;
   }
}
于 2009-10-06T10:14:15.687 に答える