是否有修改项目组中的每个项目?例如,给定此项:
<_CustomAreas Include="..\My.Project.*\Areas\**\*.*" Condition="'$(AppBuildFolder)' == ''" />
我想删除“.. \ My.Product。*部分。基本上我们有包含MVC区域的单独项目,在Package / Deployment(MSDeploy)中我们要将它们复制到主项目中。这里是使用组:
<FilesForPackagingFromProject Include="%(_CustomAreas.Identity)">
<DestinationRelativePath>Areas\%(relativedir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
$(relativedir)
以“.. \ My.Project.Plugin1 \ Areas * *。”的形式出现,它最终以ZipFileRoot\My.Project.Plugin1\Areas
的形式出现在包中。 。退出硬编码区域,然后它只为插件\区域创建文件夹)我希望它实际上最终都在ZipFileRoot\Areas
。
由于 安迪
答案 0 :(得分:0)
使用MsBuild 4.0您可以直接在脚本中使用String方法(或使用内联任务)。使用此选项,您可以编辑您的relativedir以删除My.Project。*部分。
您可以在本文中看到示例:http://sedodream.com/2010/03/07/MSBuild40PropertyFunctionsPart1.aspx
答案 1 :(得分:0)
RegexReplace(凭据:来宾/来宾)任务应该能够匹配\My.Product.*
并替换为空字符串。
这样的事情应该有效:(未经测试,需要验证转义)
<RegexReplace Input="%(_CustomAreas)" Expression="\\My\.Product\..*" Replacement="" Count="-1">
<Output ItemName="_CustomAreas" TaskParameter="Output" />
</RegexReplace>
让MSBuild Community Tasks启动并运行有一点工作,但在那里有足够好的东西让我觉得值得付出努力。
答案 2 :(得分:0)
ItemGroups中的项目可以有一个Exclude属性,允许您指定要遗漏的项目。