从MSBuild中删除文件夹

时间:2012-10-09 09:58:33

标签: c# visual-studio-2010 msbuild jenkins

我正在尝试使用MSBuild脚本从构建中删除一个文件夹(好吧,实际上我认为删除里面的文件更容易)。

我认为这样做是将它们从复制任务本身中移除,但是我认为它看起来非常简单,它不起作用(我很确定因为我对这些东西不太了解,只是阅读昨天和今天的文件)。这是我试图删除文件夹(或其中的文件)..App_Data /电子邮件模板与这个空间(空间做的事情?)。

<ItemGroup>
  <SourceRootFiles Include="$(BuildFolder)/**/*.*" Exclude="$(BuildFolder)/**/App_Data/Email Templates/*.*">
  </SourceRootFiles>
</ItemGroup>

<Target Name="PrepareBuild" DependsOnTargets="CleanUp">
  <Message Text="Preparing the build directory : $(LocalBuild)"></Message>
  <MakeDir Directories="$(LocalBuild)" />

  <Copy SourceFiles="@(SourceRootFiles)" DestinationFolder="$(LocalBuild)\%(RecursiveDir)">
  </Copy>
  <Exec Command="FOR /r &quot;$(LocalBuild)&quot; %%f IN (.svn) DO RD /s /q &quot;%%f&quot;" IgnoreExitCode="true" />
</Target>

<Target Name="Build" DependsOnTargets="PrepareBuild">
  <MSBuild Projects="$(LocalBuild)\Getting.sln" />
</Target>

更新

詹金斯提出了这个错误

:\ Program Files \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.targets(1852,5):错误:将文件App_Data \ Email Templates \ BuyerRegistrationComplete.htm复制到obj \ Latest \ Package \ PackageTmp \ App_Data \ Email Templates \ BuyerRegistrationComplete.htm失败。找不到路径'App_Data \ Email Templates \ BuyerRegistrationComplete.htm'的一部分。 [C:\构建\获取\最新\生成\网络\ UI \ UI.csproj]

不要'真的知道它是否正在排除

1 个答案:

答案 0 :(得分:0)

on githup是一个名为MsBuildTasks的项目,其中包含可以轻松集成到项目中的所有自定义操作

https://github.com/loresoft/msbuildtasks

从您的更新中讲述一个“新”故事。

在项目文件中,您引用App_Data文件夹中的文件,WebDeployment要将其复制到部署中。删除App_Data会导致丢失文件,从而导致失败。 将这些文件移动到项目中的其他位置或删除对这些文件的引用。

我的建议是为模板创建一个单独的文件夹,App_Data有不同的用途。