2016年10月13日 星期四

MSBuild Error MSB4094


使用 MSBuild 的 XmlPoke 更新特定 element attribute 的值,卻拋出 exception:
error MSB4094: "..." is an invalid value for the "Value" parameter of the "XmlPoke" task. Multiple items cannot be passed into a parameter of type "Microsoft.Build.Framework.ITaskItem"


研究後發現,原來是我要更新的內容包含分號 ( ; ),必須將分號跳脫成 %3B 即可

Example:

<Compile Include="MyFile.cs;MyClass.cs"/>
                          ↓↓↓↓↓
<Compile Include="MyFile.cs%3BMyClass.cs"/>