msbuild fileupdate setup project - PullRequest
       21

msbuild fileupdate setup project

2 голосов
/ 07 января 2010

Я хочу использовать задачу fileUpdate из msbuildtasks.tigris.org, чтобы изменить образы src как часть нашего проекта веб-настройки, чтобы они указывали на статический поддомен img (или позже CDN)
Я могу запустить задачу в данном проекте с:

<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
<Target Name="AfterBuild">
<FileUpdate 
   Files="basic.css" 
   Regex="/images/([^\)]*)" 
   ReplacementText="http://img.domain.com/images/$1" />
</Target>

Однако я не хочу перезаписывать исходный файл css, но хочу запустить его как часть нашего проекта развертывания, который создает msi. Это делается с помощью проекта веб-настройки (.vdproj), который также использует проект пользовательских действий, который является просто стандартным .csproj

Мой вопрос:
1. Как я могу запустить эту задачу в проекте установки, чтобы заменить содержимое в файлах, которые входят в MSI-файл?
2. Есть ли способ использовать подстановочные знаки для файлов - в идеале я хочу сказать, сделать это для ВСЕХ файлов .css?

Спасибо за вашу помощь

1 Ответ

11 голосов
/ 05 февраля 2010

Для этого вам нужно использовать группу предметов, чтобы создать список для вас

<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" /> 
<Target Name="AfterBuild"> 

<ItemGroup>
   <CssFiles Include='$(SolutionRoot)\**\*.css' />
</ItemGroup>

<FileUpdate  
   Files="@(CssFiles)"  
   Regex="/images/([^\)]*)"  
   ReplacementText="http://img.domain.com/images/$1" /> 
</Target>
...