5
このように見えるが、おそらくネームスペース宣言のために動作しないcsprojファイルからノードを引き出そうとしています。XElementを使用してネームスペース内のノードを照会します
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
<PropertyGroup>
<RegisterForComInterop>true</RegisterForComInterop>
これは、無残に失敗します。
XDocument cpo = XDocument.Load(file);
XmlNamespaceManager nsm = new XmlNamespaceManager(new NameTable());
nsm.AddNamespace("x", "http://schemas.microsoft.com/developer/msbuild/200");
IEnumerable<XElement> list3 = cpo.XPathSelectElements("//x:RegisterForComInterop[.='true']", nsm);
誰でも任意のアイデアしてください?
ありがとうございました。
ブール値の文字列を100%期待しているので、最後の行を '.Where(x => bool.Parse(x.Value)) 'に置き換えます。 – Shimmy
バッチ・パフォーマンスの場合、この選択はオーバーヘッドを削減します。 – Shimmy
@Shimmy:ここではbool.Parseを使用しません。XMLについて知っている 'bool'への明示的な変換を使用します。編集します。 –