0

我正在尝试将自定义文件添加到我们的 Web 部署包中,根据此博客发布: http ://sedodream.com/2010/05/01/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.aspx

  <Target Name="CustomCollectFiles">
    <Message Text="AppBuildFolder = $(AppBuildFolder)"/>
    <ItemGroup>
      <_CustomFiles Include="..\*Repository*\**\*.dll;..\*Repository*\**\*.pdb" Condition="'$(AppBuildFolder)' == ''" />
      <_CustomFiles Include="$(AppBuildFolder + '*.dll');$(AppBuildFolder + '*.pdb')" Condition="'$(AppBuildFolder)' != ''" />
      <FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
        <DestinationRelativePath>bin\%(Filename)%(Extension)</DestinationRelativePath>
      </FilesForPackagingFromProject>
    </ItemGroup>
    <Message Text="Files found: @(_CustomFiles)"/>
  </Target>

我们在 AppBuildFolder 中还有一些其他引用,我们需要将它们复制到包中,但我从未在消息中看到任何找到的文件输出。有任何想法吗?

谢谢安迪

4

2 回答 2

1

好的,所以问题是这样的。我们正在使用 Nant 的 MsBuild 任务来构建 Web Deploy 项目。

显然,当这样调用任务时:

<msbuild>
  <property name="AppBuildFolder" value="${Some.Path.Ending.In.Backslash}" />
</msbuild>

MsBuild 以这个值结束c:\myfolder"。注意末尾的双引号,而不是c:\myfolder\.

解决方法是更改​​并使用元素<property />传递值。<arg />

所以,问题是 NantContrib 中的 MsBuild 任务。

希望这可以节省其他人一些时间。

于 2010-10-19T15:38:57.457 回答
0

您缺少将该目标注入构建的 PropertyGroup。你也应该包括它,我怀疑这个目标没有执行,所以它们永远不会被添加。另外,您可能想关注我的博客,因为有一种更简单的方法可以做到这一点,我会在有时间的时候尽快写博客。

于 2010-10-19T00:21:22.123 回答