【问题标题】:Create a folder during MSBuild TFS Publish在 MSBuild TFS 发布期间创建文件夹
【发布时间】:2014-11-07 07:06:41
【问题描述】:

我想在我的 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 在构建后/部署后创建文件夹的推荐路线是什么?

【问题讨论】:

    标签: tfsbuild msdeploy


    【解决方案1】:

    两者都应该工作。问题可能是在 TFS 源文件夹而不是输出/放置文件夹中创建了 TempImages 文件夹。

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

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

    后两者仅适用于 TF Build,您几乎可以肯定需要添加相对路径后缀,例如$(TF_BUILD_BINARIESDIRECTORY)\MyWebSite\TempImages\.

    您可以将条件逻辑添加到您的构建后事件或 MSBuild 目标,以检测何时基于 $(TF_BUILD) 属性从 TF Build 构建。

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

    【讨论】:

    • 太好了,我会在星期一看看这些。顺便说一句,有没有像样的地方可以使用 MSBuild 参数及其用法的参考?我似乎在这个主题上发现的很少!
    • 你运气好吗?
    • 目前没有!我已经尝试了几个变量但没有任何运气,如果我现在将它作为构建后操作放入 .csproj 文件中,我会得到一个红色的波浪线:(
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-03
      • 2013-07-15
      • 2018-09-19
      • 1970-01-01
      • 2014-09-16
      相关资源
      最近更新 更多