MSBuild Community Tasks の Nightly ビルド 1.3.0.477 を使用していますが、XmlMassUpdate に問題があります。
これが私がやりたいことです:
プロジェクトごとに CommonAssemblyInfo.cs ファイルを参照していない場合は、その参照を追加します。
私はこのようにやっています:
<Message Text="Path is $(MSBuildCommunityTasksPath)" Importance="normal" />
<!---->
<XmlMassUpdate ContentFile="%(DotNetProjects.FullPath)"
ContentRoot="msb:Project/msb:ItemGroup[2]/msb:Compile[1]"
NamespaceDefinitions="msb=http://schemas.microsoft.com/developer/msbuild/2003"
SubstitutionsFile="$(BuildFolder)CommonAssemblyInfo.substitution"
SubstitutionsRoot="ItemGroup/Compile" />
私の置換ファイルは次のようになります。
<ItemGroup>
<Compile Include="..\..\CommonAssemblyInfo.cs" >
<Link>Properties\CommonAssemblyInfo.cs</Link>
</Compile>
</ItemGroup>
問題は、ターゲットを実行すると、リンク タグに空の xmlns が追加されることです。これは違法です。
<ItemGroup>
<Compile Include="Class1.cs">
<Link xmlns="">Properties\CommonAssemblyInfo.cs</Link>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
それをしないようにするにはどうすればよいですか?