在MSBuild TFS发布期间创建一个文件夹

时间:2014-10-01 12:50:27

标签: tfsbuild msdeploy tfs2013

我想在我的TFS构建过程中创建一个文件夹,在这种情况下,它是一个' TempImages'文件夹,我不想作为解决方案的一部分,也不是源代码控制。

为了在本地实现这一点,我设置了以下后期构建操作:

IF NOT EXIST "$(ProjectDir)\TempImages\" mkdir "$(ProjectDir)\TempImages\"

这就像魅力一样,除非使用TFS发布到我的测试环境,否则不会创建文件夹。 经过一些谷歌搜索,我发现我可能需要以稍微不同的方式执行此操作,因此将以下内容添加到我的.csproj文件中。

  <Target Name="AfterBuild">
    <Exec Command="IF NOT EXIST &quot;$(ProjectDir)\TempImages\&quot; mkdir &quot;$(ProjectDir)\TempImages\&quot;"></Exec>
  </Target>

不幸的是,这似乎并没有成功。

为此目的,通过TFS在构建后/部署后创建文件夹的建议路径是什么?

2 个答案:

答案 0 :(得分:4)

两者都应该有用。问题可能是在TFS源文件夹而不是输出/ drop文件夹中创建了TempImages文件夹。

您可以尝试将$(ProjectDir)属性更改为以下之一:

$(WebProjectOutputDir)
$(TF_BUILD_BINARIESDIRECTORY)
$(TF_BUILD_DROPLOCATION)

后两个只适用于TF Build,你几乎肯定需要添加一个相对路径后缀,例如$(TF_BUILD_BINARIESDIRECTORY)\MyWebSite\TempImages\

您可以向post build事件或MSBuild目标添加条件逻辑,以检测何时根据$(TF_BUILD)属性从TF Build构建。

http://msdn.microsoft.com/en-us/library/hh850448.aspx

答案 1 :(得分:0)

我会修改构建模板并在构建成功后添加自定义活动来创建此文件夹。以下是有关自定义构建模板的link到MSDN。