如何使用MSBUILD复制时排除某些文件夹

Sha*_*haz 4 msbuild copy build

看起来它应该相当简单但我在使用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)"/>
Run Code Online (Sandbox Code Playgroud)

在项目组部分,我有一个ExcludeFromBuild项,列出了我想要排除的文件类型.最重要的是,我想排除"obj"和"Web References"文件夹.

我怎么能做到这一点?如果需要更多信息,请告诉我.谢谢.

沙赫扎德

Rom*_*kov 5

您需要为此创建一个新的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>
Run Code Online (Sandbox Code Playgroud)

(未经测试;可能包含语法错别字)