我正在尝试将自定义文件添加到我们的网络部署包中,根据此博文: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上有一些其他引用我们需要复制到包中,但我从未在消息中看到任何找到的文件。有什么想法吗?
由于 安迪
答案 0 :(得分: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任务。
希望这能节省一些时间。
答案 1 :(得分:0)
您缺少将该目标注入构建的PropertyGroup。你也应该包含它,我怀疑这个目标没有执行所以它们永远不会被添加。此外,您可能希望关注我的博客,因为有一种更简单的方法可以做到这一点,我会在有空的时候立即发布博客。