我有一个自定义任务,我在其中使用MSBuild。效果很好。
以前,我有一些属性接受一些string
数据。有人建议我应该将它们更改为ITaskItem
的。这样,如果我有空间,就不会有问题。
以前的代码
public class CompressorTask : Task
{
....
public string CssFiles { get; set; }
public string JavaScriptFiles { get; set; }
}
示例 msbuild 文件(例如 MsBuildSample.xml)...
<CompressorTask
CssFiles="StylesheetSample1.css, StylesheetSample2.css,
StylesheetSample3.css, StylesheetSample4.css"
JavaScriptFiles="jquery-1.2.6-vsdoc.js"
... />
注意到我怎么有 4 个 css 文件了吗?我通过 , 或 空格分隔符手动提取它们。基尔。
New Code
public ITaskItem[] CssFiles { get; set; }
public ITaskItem[] JavaScriptFiles { get; set; }
现在,我不确定需要在 MSBuild 文件的 CssFiles 属性中设置什么值。
有什么建议么?
我认为您现在需要将文件放入带有属性名称的项目列表中:
<ItemGroup>
<CssFiles Include="StylesheetSample1.css"/>
<CssFiles Include="StylesheetSample2.css"/>
<CssFiles Include="StylesheetSample3.css"/>
<CssFiles Include="StylesheetSample4.css"/>
<!-- or <CssFiles Include="*.css" /> -->
<JavaScriptFiles Include="jquery-1.2.6-vsdoc.js"/>
</ItemGroup>
<CompressorTask CssFiles="@(CssFiles)" JavaScriptFiles="@(JavaScriptFiles)"/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)