Как исключить определенные папки при копировании с использованием MSBUILD - PullRequest
4 голосов
/ 06 января 2011

Похоже, это должно быть довольно просто, но у меня возникают проблемы с исключением папок при использовании задачи копирования MSBUILD.Вот что я делаю:

   <ItemGroup>
        <Compile Include="$(_SolutionPath)$(_SolutionName)" />
        <ProjectFiles Include="..\$(_WebDirectory)\*.csproj" Exclude="*.master.csproj"/>
        <ExcludeFromBuild Include="..\$(_WebDirectory)\**\*.cs; ..\$(_WebDirectory)\**\*.sln; ..\$(_WebDirectory)\**\*.csproj; ..\$(_WebDirectory)\Web References; ..\$(_WebDirectory)\obj;"/>
        <AppFolder Include="..\$(_WebDirectory)\**\*.*" Exclude="$(ExcludeFromBuild)"/>
    </ItemGroup>

<Copy SourceFiles="@(AppFolder)" DestinationFiles="c:\test\%(RecursiveDir)%(FileName)%(Extension)"/>

В разделе группы элементов у меня есть элемент ExcludeFromBuild, в котором перечислены типы файлов, которые я хочу исключить.Кроме того, я хочу исключить папки «obj» и «Web References».

Как мне это сделать?Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.Спасибо.

Шахзад

1 Ответ

5 голосов
/ 06 января 2011

Для этого вам нужно создать новую ItemGroup.Я добавил AppFolderWithExclusions ниже:

<ItemGroup>
     <Compile Include="$(_SolutionPath)$(_SolutionName)" />
     <ProjectFiles Include="..\$(_WebDirectory)\*.csproj" Exclude="*.master.csproj"/>
     <ExcludeFromBuild Include="..\$(_WebDirectory)\**\*.cs; ..\$(_WebDirectory)\**\*.sln; ..\$(_WebDirectory)\**\*.csproj; ..\$(_WebDirectory)\Web References; ..\$(_WebDirectory)\obj;"/>
     <AppFolder Include="..\$(_WebDirectory)\**\*.*" Exclude="$(ExcludeFromBuild)"/>

     <AppFolderWithExclusions Include="@(AppFolder)" Exclude="obj\**\*.*;Web References\**\*.*" />
 </ItemGroup>

(не проверено; может содержать синтаксические опечатки)

...